其他分享
首页 > 其他分享> > android-具有Google Play服务的Adobe Air 4.0本机扩展

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