android-具有Google Play服务的Adobe Air 4.0本机扩展
作者:互联网
这些天来,我正尝试通过Google Play服务将AdMob集成到基于Adobe Air的android应用中.准备好ane文件后,在Flash Builder 4.6中调试应用后出现以下错误:
Error occurred while packaging the application:
dx tool failed: UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added:
Lcom/google/android/gms/R$attr; at
com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
at com.android.dx.dex.file.DexFile.add(DexFile.java:143) at
com.android.dx.command.dexer.Main.processClass(Main.java:301) at
com.android.dx.command.dexer.Main.processFileBytes(Main.java:278) at
com.android.dx.command.dexer.Main.access$100(Main.java:56) at
com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:229)
at
com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:244)
at
com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:130)
at
com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:108)
at com.android.dx.command.dexer.Main.processOne(Main.java:247) at
com.android.dx.command.dexer.Main.processAllFiles(Main.java:183) at
com.android.dx.command.dexer.Main.run(Main.java:139) at
com.android.dx.command.dexer.Main.main(Main.java:120) at
com.android.dx.command.Main.main(Main.java:89) 1 error; aborting
这个问题与post非常相似:
Cannot build Android Release Build on Flash Builder 4.7 due to “dx tool failed”
我知道我的ane文件一定有问题.但是我真的不知道问题出在哪里.这是我的Android本机扩展.jar文件夹:
这是我的platform.xml文件:
<platform xmlns="http://ns.adobe.com/air/extension/4.0">
<packagedDependencies>
<packagedDependency>android-support-v4.jar</packagedDependency>
<packagedDependency>google-play-services.jar</packagedDependency>
</packagedDependencies>
<packagedResources>
<packagedResource>
<packageName>com.google.android.gms</packageName>
<folderName>google-play-services-res</folderName>
</packagedResource>
</packagedResources>
</platform>
我正在使用以下命令行来编译ane文件:
adt -package -target ane Output.ane extension.xml -swc AdmobLibrary.swc -platform Android-ARM -platformoptions platform.xml -C android . -platform default -C default .
我可以得到ane文件.但是在调试我的Flex应用程序之后,错误就出来了.
解决方法:
我终于找到了问题的解决方案.问题出在将本机扩展名导出到.jar文件的过程中.更具体地说,当我将android项目导出到.jar文件时,我犯了一个错误.我选择整个Java项目文件导出到.jar文件,包括不必要的gen文件夹.这是屏幕截图:
我在做什么是不正确的:
这是正确的方法:
标签:admob,air-native-extension,android 来源: https://codeday.me/bug/20191121/2054901.html