Собственное расширение Adobe Air 4.0 с сервисами Google Play
В настоящее время я пытаюсь интегрировать AdMob в свое приложение для Android на базе Adobe Air с помощью службы Google Play. После того, как я подготовил файл ane, я получил следующую ошибку после отладки приложения во Flash Builder 4.6:
Произошла ошибка при упаковке приложения:
Ошибка инструмента dx: НЕОЖИДАННОЕ ИСКЛЮЧЕНИЕ НА ВЫСОКОМ УРОВНЕ: java.lang.IllegalArgumentException: уже добавлено: Lcom/google/android/gms/R$attr; на com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123) на com.android.dx.dex.file.DexFile.add(DexFile.java:143) на com.android.dx.command.dexer.Main.processClass(Main.java:301) на com.android.dx.command.dexer.Main.processFileBytes(Main.java:278) на com.android.dx.command.dexer.Main.access$100(Main.java:56) на com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:229) на com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:244) на com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:130) в com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:108) в com.android.dx.command.dexer.Main.processOne(Main.java:247) в com.android.dx.command.dexer.Main.processAllFiles(Main.java:183) в com.android.dx.command.dexer.Main.run(Main. Java:139) на com.android.dx.command.dexer.Main.main(Main.java:120) на com.android.dx.command.Main.main(Main.java:89) 1 ошибка; отбрасывание
Эта проблема очень похожа на статью " Невозможно собрать сборку релиза Android на Flash Builder 4.7" из-за "сбой инструмента dx"
Я знаю, что должно быть что-то не так с моим файлом Ane. Но я действительно не знаю, в чем проблема. Вот моя родная папка расширения.jar для Android:
Вот мой файл 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 .
Я могу получить файл Анэ. Но после отладки моего приложения Flex появляется ошибка.
1 ответ
Я наконец нашел решение проблемы. Проблема в процессе экспорта собственного расширения в файл.jar. В частности, когда я экспортировал свой проект Android в файл.jar, я допустил ошибку. Я выбираю целые файлы проекта Java для экспорта в файл.jar, включая папку gen, которая не нужна. Вот снимок экрана:
То, что я делаю, неверно:
Это правильный путь: