FlashDevelop 为简单项目创建 APK 时出错

Posted

技术标签:

【中文标题】FlashDevelop 为简单项目创建 APK 时出错【英文标题】:FlashDevelop error creating APK for simple project 【发布时间】:2019-11-15 14:17:50 【问题描述】:

由于错误无法构建 Apk,一些明显的故障排除无法解决它

我启动了一个 AIR Mobile AS3 App 项目。最后我可以说它正确地找到了它的 AIR 和 Flex 文件夹。有关于此类问题的线程,但最新版本的 Flex 并没有,主要是 AIR。所以一个带有最新 flex 和 AIR 的新项目,我安装了 AppMan 包 Flex SDK + AIR SDK 4.6.0。 + 32.0.0

SetupSDK.bat 中的明显路径是:

..(whatever drive)\FlashDevelop-5.3.3\Apps\flexairsdk\4.6.0+32.0.0
..(whatever drive)\FlashDevelop-5.3.3\Tools\android (that includes platform-tools containing adb.exe)

... 所以 application.xml 必须有 ? 应用程序 xmlns="http://ns.adobe.com/air/application/32.0"

28.0 中的默认值,但没有任何改变

是的,证书是从 bat 中创建的

就是这样,一个简单的嵌入式图像显示: 按 F5 时我必须在 Debug 和 Release 之间切换,因为重复两次 Debug 或 Repeat 会导致图像的 var 值为空的错误,但如果你交替它会在设备窗口中显示图像,所以我会假设它编译得很好。

或者删除编译时生成的project.swf,如果第一次运行Debug或Release,也可以显示图像。

但错误是在运行 PackageApp.bat 和 [1] 用于普通 apk 时

【问题讨论】:

显示导致错误 var value for image is empty 的 AS3 代码部分。你是……好吧,不管你在做什么。要获得更快的答案:首先显示一些重新创建此问题的代码。 【参考方案1】:

关于您的代码:http://oneclickpaste.com/26534/

Main.as 中尝试使用; 关闭导入(以防出现奇怪的技术问题)。 例如:import com.mee.ptest.PicTest;

PicTest.as 中,您需要修复此行:iPic = new PicTest.cTestPic(); 成为:iPic = new cTestPic() as Bitmap;

PicTest.as 的示例:

package com.mee.ptest 

    import flash.display.Bitmap;
    import flash.display.Sprite;

    public class PicTest extends Sprite 
    
        [Embed(source="../../../assets/testpic.jpg")]
        private static var cTestPic :Class;
        private var iPic :Bitmap;               

        public function PicTest()  
        
            iPic = new cTestPic() as Bitmap;
            addChild(iPic);
        

    


然后是Main.as的例子:

import flash.desktop.NativeApplication;
import flash.events.Event;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.ui.Multitouch;
import flash.ui.MultitouchInputMode;
import flash.display.Bitmap;

import flash.display.*; 
import com.mee.ptest.PicTest;

public class Main extends Sprite 
   
    public var pic : PicTest;

    public function Main() 
    
        stage.scaleMode = StageScaleMode.NO_SCALE;
        stage.align = StageAlign.TOP_LEFT;
        stage.addEventListener(Event.DEACTIVATE, deactivate);

        Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;

        //# check if app is ready to display visual items...
        if (stage)   show_Pic(); 
        else  addEventListener( Event.ADDED_TO_STAGE, show_Pic ); 

    

    private function show_Pic() :void 
    
        pic = new PicTest();
        addChild(pic);
    

    private function deactivate(e:Event) :void 
    
        // make sure the app behaves well (or exits) when in background
        //NativeApplication.nativeApplication.exit();
    


【讨论】:

谢谢,代码改进也有效。那么这是一个FlashDevelop错误,在使用F5显示图像后,即使使用您的代码版本,重复也会导致错误? ReferenceError:错误 #1065:未定义变量 PicTest_cTestPic。虽然这只是一个测试,但这并不重要,我需要看看它在实际手机上的表现如何。我的问题是为什么它无法编译 apk 无法编译APK,因为你不能说iPic = new PicTest.cTestPic();。错误var value for image is empty 也似乎没有用。您是否有在编译期间出现该错误的日志或屏幕截图?所有错误告诉我的是,有一个名为 image 的东西需要一个变量作为值,但它留空(未定义),就像它看到你的代码一样 image = ... ; 其中... 是一个空白/空白空间..是的,从类加载图像是基本的。你是地球上唯一遇到这个神秘错误的人。也许我会学到一些东西 嗨,对不起,我错过了更正iPic = new cTestPic() as Bitmap; 现在它已修复并仍然第一次显示图像,然后在下次我 F5 测试时再次给出相同的错误,这是完整的错误,我确实像你一样制作了其余的代码ReferenceError: Error #1065: Variable com.mee.ptest::PicTest_cTestPic is not defined. at com.mee.ptest::PicTest$cinit() at global$init() at Main/show_Pic() at Main() ge.tt/8KeH73x2 已更新,这是一个测试项目,可以使用,但是任何人都希望只有在相同模式下重复 F5 测试后才能加载图像它将显示没有错误的图像【参考方案2】:

http://www.flashdevelop.org/community/viewtopic.php?f=6&t=12144

这解决了这个问题。我也必须安装 JRE 1.6,因为 1.8 有 FD 错误。在 jvm.config 中设置 java.home 的路径以使用 JRE 1.6 文件夹,不再出现“未定义变量”,这是常见消息,现在我可以 F5 没有错误,感谢上述位图提示。

【讨论】:

以上是关于FlashDevelop 为简单项目创建 APK 时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 FlashDevelop 调试 Flash IDE AIR 3.4 桌面应用程序?

设置 FlashDevelop 使其生成适用于手机的文件

用于游戏开发的 flashdevelop

如何在 FlashDevelop 中添加对 swcs 的项目引用

ActionScript 3 基本文档类模板,由FlashDevelop创建

基本文档类模板,由FlashDevelop创建