【问题标题】:Flash Builder 4.7 fails on debugging on android deviceFlash Builder 4.7 在 android 设备上调试失败
【发布时间】:2013-07-24 10:34:06
【问题描述】:

我正在创建一个包含原生扩展 (.ane) 的应用

目前它已经在 iOS 上运行,但我也想为 android 添加一个扩展。

现在,我已经完成了所有必要的步骤,并希望在设备上进行调试。但是每当我尝试启动调试器时,都会出现以下错误,我不知道如何解决。

不过,我可以创建一个“发布版本”。不幸的是,启动后,应用程序挂起。

但是,我不知道是建筑物还是编码问题导致了崩溃,因此我需要调试器。

An internal error occurred during: "Launching MyAppWithExtension".

java.lang.NullPointerException
at com.adobe.flexbuilder.project.ui.utils.ANE.AppXMLFileANEExtensionHandler.retainExtensionIds(AppXMLFileANEExtensionHandler.java:309)
at com.adobe.flexbuilder.project.ui.utils.ANE.ANEController.modifyAppXMLforPackaging(ANEController.java:360)
at com.adobe.flexbuilder.project.ui.utils.ANE.ANEController.modifyAppXMLforPackaging(ANEController.java:326)
at com.adobe.flexbuilder.project.ui.utils.ANE.AbstractANEPackageHandler.modifyAppXMLforPackaging(AbstractANEPackageHandler.java:86)
at com.adobe.flexide.launching.multiplatform.launchhandlers.AbstractMultiPlatformLaunchHandler.handleANEPackagingDetails(AbstractMultiPlatformLaunchHandler.java:195)
at com.adobe.flexide.launching.multiplatform.launchhandlers.AbstractMultiPlatformLaunchHandler.applyPackagingDetails(AbstractMultiPlatformLaunchHandler.java:168)
at com.adobe.flexide.multiplatform.android.launching.ADBLaunchHandler.initialisePackager(ADBLaunchHandler.java:533)
at com.adobe.flexide.multiplatform.android.launching.ADBLaunchHandler.doPackage(ADBLaunchHandler.java:409)
at com.adobe.flexide.multiplatform.android.launching.ADBLaunchHandler.launch(ADBLaunchHandler.java:350)
at com.adobe.flexide.launching.multiplatform.MultiPlatformLaunchDelegate.launch(MultiPlatformLaunchDelegate.java:184)
at com.adobe.flexide.launching.AbstractFlexLaunchDelegate.launch(AbstractFlexLaunchDelegate.java:244)
at com.adobe.flexide.launching.AbstractFlexLaunchDelegate.launch(AbstractFlexLaunchDelegate.java:134)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:854)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:703)
at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:928)
at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1132)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

Session Data:

eclipse.buildId=M20110909-1335
java.version=1.6.0_51
java.vendor=Apple Inc.
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
Framework arguments:  -keyring /Users/myusername/.eclipse_keyring -showlocation
Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -keyring /Users/myusername/.eclipse_keyring -consoleLog -showlocation

This is a continuation of log file /Users/myusername/PathToMy/Workspaces/MyAppWithExtension/.metadata/.bak_0.log
Created Time: 2013-07-24 11:43:14.053

提前非常感谢蒂姆

编辑:这是我到目前为止所做的,但没有运气:(

  • 创建新工作区

  • 在启动时使用 -clean 参数运行 Flash Builder

  • 使用 Adob​​e Clean Tool 重新安装 Flash Builder

  • 清理了所有我知道的 bin-debug bin-release-temp 和其他与项目相关的临时文件夹。

【问题讨论】:

  • 您是否包含未设置为与 Android 一起使用的 ANE? ANE 是特定于平台的(原因很明显)。您可以让它们在所有平台上运行,但您在网上找到的大多数 ANE 都不会这样做(只有开发良好的 ANE 会这样做)。尝试调试时是否显示错误?
  • @JoshJanusch 您好,感谢您的提问。我自己开发了 ane,事实上它已经在 FB 4.6 中工作(并且还在调试)。我设置了扩展 xml 以支持 android。最近,我更新了扩展的 android 部分和 Flash Builder 的 (java) 代码。现在我一直遇到问题,主要是在编译或调试时。我从 FB GUI 得到的具体错误是:“Java 空指针异常”(这些天我在很多情况下经常遇到这些错误;)我还将编辑我的问题以反映我迄今为止为解决所做的工作问题。再次感谢。

标签: android apache-flex mobile air air-native-extension


【解决方案1】:
  • appName-app.xml 看起来如何?查看文件末尾,<extensionID> 是否匹配 ANE/extension.xml <extension>/<id>
  • 您是否使用与主项目相同的 sdk 构建 ANE?
  • <nativeLibrary> 引用的文件是否真的包含在 ANE 中(使用存档器打开)?
  • 您是否很好地实现了 extension.xml 的 <initializer><finalizer> 中引用的函数?

【讨论】:

  • 这是一堆问题,你有,而不是答案;)但还是非常感谢!我可以用“是”回答任何问题,除了我用来构建我的 ane 的 sdk,但我不确定这是否重要。 .ane 是用 air 3.1 构建的(需要它来兼容 PlayBook),iOS 和 BlackBerry 的发布版本运行良好。我就是不能调试,这是个问题,因为Android部分不工作。
  • 很抱歉以这种方式通知我们,但我只是不确定它是否有效,因为 (at) 之后的所有内容有时会从我的系统@JérômeGillard 的评论中省略
【解决方案2】:

经过数周的试验,我终于找到了问题的原因。 Flash Builder 似乎对我的项目结构有问题,即我在其中有 2 个可执行应用程序。

删除一个,通过删除或通过项目->设置->应用程序对话框停用,最终修复它。

我希望这可以帮助任何面临同样烦人的 Flash Builder 问题的人。

【讨论】:

    【解决方案3】:

    如果您在使用 ANE 和 Coldfusion 服务器时遇到此异常,请将项目属性 > Flex 服务器 > 输出文件夹中的输出文件夹更改为类似“temp”而不是 Flex 生成的“C:...”生成器。 Android 设备被“C:”引用弄糊涂了,但仍然可以理解“临时”本地文件夹

    【讨论】:

    • 能否请您详细说明您的答案,添加更多关于您提供的解决方案的描述?
    • 不知道我该如何更好地解释它:) 因此,如果您在使用某些 ANE 时遇到此异常并且同时使用 ColdFusion 服务器,则问题是 Flash 的默认输出文件夹Builder 在 Project Properties > Flex Server > Output 文件夹下创建以“C:\...”开头。当您尝试在设备上调试它时,设备会尝试解析“C:\...”路径并且无法生成异常。所以解决方案是将输出文件夹路径更改为“temp”之类的东西。此文件夹适用于计算机和设备
    猜你喜欢
    • 1970-01-01
    • 2014-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多