Adobe Air 4.0 Native Extension with Google Play Services

人走茶凉 提交于 2019-12-01 07:45:37

问题


These days, I am trying to integrate AdMob into my Adobe Air based android app, with Google Play Service. After I get the ane file ready, I got following error after I debug app in 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

This problem is quite similar with post: Cannot build Android Release Build on Flash Builder 4.7 due to "dx tool failed"

I know there must be something wrong with my ane file. But I really don't know where is the problem. Here is my android native extension .jar folder:

Here is my platform.xml file:

<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>

I am using following command line to compile the ane file:

adt -package -target ane Output.ane extension.xml -swc AdmobLibrary.swc -platform Android-ARM -platformoptions platform.xml -C android . -platform default -C default .

I can get the ane file. But after debuging my Flex app, the error is coming out.


回答1:


I finally found the problem solution. The problem is in the process of exporting native extension to .jar file. More specifically, when I export my android project to .jar file, I made a mistake. I select the whole java project files to export into .jar file, including gen folder which is not necessary. Here is the screen shot:

What I am doing is incorrect:

This is the correct way:



来源:https://stackoverflow.com/questions/23104532/adobe-air-4-0-native-extension-with-google-play-services

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!