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 中添加对 swcs 的项目引用