Distriqt Facebook ANE 不会为 Android 编译
Distriqt Facebook ANE won't compile for Android
我在为 Android 编译 Distriqt Facebook ANE 时遇到问题。
它在 iOS 上运行良好,但在 Android.
上运行不正常
错误信息是:
dx tool failed:
UNEXPECTED TOP-LEVEL ERROR: java.lang.OutOfMemoryError: Java heap
space at
com.android.dx.cf.code.ExecutionStack.copy(ExecutionStack.java:66) at
com.android.dx.cf.code.Frame.copy(Frame.java:98) at
com.android.dx.cf.code.Ropper.processBlock(Ropper.java:786) at
com.android.dx.cf.code.Ropper.doit(Ropper.java:742) at
com.android.dx.cf.code.Ropper.convert(Ropper.java:349) at
com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:280)
at
com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:137)
at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:93)
at com.android.dx.command.dexer.Main.processClass(Main.java:729) at
com.android.dx.command.dexer.Main.processFileBytes(Main.java:673) at
com.android.dx.command.dexer.Main.access0(Main.java:83) at
com.android.dx.command.dexer.Main.processFileBytes(Main.java:602)
at
com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
at
com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
at
com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632) at
com.android.dx.command.dexer.Main.processAllFiles(Main.java:510) at
com.android.dx.command.dexer.Main.runMonoDex(Main.java:280) at
com.android.dx.command.dexer.Main.run(Main.java:246) at
com.android.dx.command.dexer.Main.main(Main.java:215) at
com.android.dx.command.Main.main(Main.java:106)
ADT command line:
...
尝试使用 AIR18 和 AIR 16(更新 dx.jar 来自 distriqt 教程)。
我的清单包括所有 3 个需要的扩展:
<extensionID>com.distriqt.Core</extensionID>
<extensionID>com.distriqt.GooglePlayServices</extensionID>
<extensionID>com.distriqt.FacebookAPI</extensionID>
删除 GooglePlayServices 使编译成为可能,但应用程序在初始化 FacebokAPI 时崩溃。
使用 AIR16 而不使用 更新后的 dx.jar 也会在启动时直接使应用程序崩溃。目录记录了以下异常:
08-23 14:53:14.793 E/AndroidRuntime(3178): java.lang.RuntimeException:
Unable to get provider com.facebook.FacebookContentProvider:
java.lang.ClassNotFoundException: com.facebook.FacebookContentProvider
in loader
dalvik.system.PathClassLoader[/data/app/air.my.com.zas.lefiner-1.apk]
08-23 14:53:14.793 E/AndroidRuntime(3178): Caused by:
java.lang.ClassNotFoundException: com.facebook.FacebookContentProvider
in loader
dalvik.system.PathClassLoader[/data/app/air.my.com.zas.lefiner-1.apk]
奇怪的是,使用 Core 和 GooglePlayServices 的 Distriqt GooglePlusANE 在两个平台上都能正常工作。所以我强烈认为 FacebookAPI 扩展有问题。
非常感谢任何帮助!
如果您正在使用 Intellij IDEA
,请在 Actionscript
和 Flex
编译器中增加 Compiler heap size
。这解决了我的问题。
我在为 Android 编译 Distriqt Facebook ANE 时遇到问题。
它在 iOS 上运行良好,但在 Android.
上运行不正常
错误信息是:
dx tool failed:
UNEXPECTED TOP-LEVEL ERROR: java.lang.OutOfMemoryError: Java heap space at com.android.dx.cf.code.ExecutionStack.copy(ExecutionStack.java:66) at com.android.dx.cf.code.Frame.copy(Frame.java:98) at com.android.dx.cf.code.Ropper.processBlock(Ropper.java:786) at com.android.dx.cf.code.Ropper.doit(Ropper.java:742) at com.android.dx.cf.code.Ropper.convert(Ropper.java:349) at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:280) at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:137) at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:93) at com.android.dx.command.dexer.Main.processClass(Main.java:729) at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673) at com.android.dx.command.dexer.Main.access0(Main.java:83) at com.android.dx.command.dexer.Main.processFileBytes(Main.java:602) at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) at com.android.dx.command.dexer.Main.processOne(Main.java:632) at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280) at com.android.dx.command.dexer.Main.run(Main.java:246) at com.android.dx.command.dexer.Main.main(Main.java:215) at com.android.dx.command.Main.main(Main.java:106)
ADT command line: ...
尝试使用 AIR18 和 AIR 16(更新 dx.jar 来自 distriqt 教程)。 我的清单包括所有 3 个需要的扩展:
<extensionID>com.distriqt.Core</extensionID>
<extensionID>com.distriqt.GooglePlayServices</extensionID>
<extensionID>com.distriqt.FacebookAPI</extensionID>
删除 GooglePlayServices 使编译成为可能,但应用程序在初始化 FacebokAPI 时崩溃。
使用 AIR16 而不使用 更新后的 dx.jar 也会在启动时直接使应用程序崩溃。目录记录了以下异常:
08-23 14:53:14.793 E/AndroidRuntime(3178): java.lang.RuntimeException: Unable to get provider com.facebook.FacebookContentProvider: java.lang.ClassNotFoundException: com.facebook.FacebookContentProvider in loader dalvik.system.PathClassLoader[/data/app/air.my.com.zas.lefiner-1.apk]
08-23 14:53:14.793 E/AndroidRuntime(3178): Caused by: java.lang.ClassNotFoundException: com.facebook.FacebookContentProvider in loader dalvik.system.PathClassLoader[/data/app/air.my.com.zas.lefiner-1.apk]
奇怪的是,使用 Core 和 GooglePlayServices 的 Distriqt GooglePlusANE 在两个平台上都能正常工作。所以我强烈认为 FacebookAPI 扩展有问题。
非常感谢任何帮助!
如果您正在使用 Intellij IDEA
,请在 Actionscript
和 Flex
编译器中增加 Compiler heap size
。这解决了我的问题。