Intereting Posts

Включая библиотеку Google Play Downloader | Библиотека расширения файлов APK

Я следую руководству разработчика по адресу http://developer.android.com/guide/market/expansion-files.html , чтобы загрузить дополнительные ресурсы в свой apk.

Я сделал все, что касается импорта библиотек и т. Д. Я также реализовал код образцов в моей основной программе (чтобы определить, загружены ли файлы расширения, если нам нужно загрузить их и запустить загрузку , и т.д ..)

У меня нет ошибок в eclipse, но когда я запускаю приложение и начинаю вызывать методы и классы из библиотеки, у меня разные сбои:

1 – Во-первых, при установке adb говорит, что библиотеки не были найдены ..:

[2012-04-17 22:50:13 - MyApp] adb is running normally. [2012-04-17 22:50:13 - MyApp] Performing com.gmla.MyApp activity launch [2012-04-17 22:50:16 - MyApp] Uploading MyApp.apk onto device 'SH16PV801048' [2012-04-17 22:50:16 - MyApp] Installing MyApp.apk... [2012-04-17 22:50:22 - MyApp] Success! [2012-04-17 22:50:22 - Google Play Downloader Library] Could not find Google Play Downloader Library.apk! [2012-04-17 22:50:22 - Google Play License Library] Could not find Google Play License Library.apk! 

Вот скриншот о том, как я пытался импортировать свои библиотеки: http://floy.fr/perso/floy/expfiles/4.PNG

Я импортировал библиотеки с импортом проекта в Java Build Path, как часть a) , в мои основные свойства проекта: (таким образом, импортировала библиотеку лицензий в библиотеку загрузки)

Я также пытался импортировать только баночки, как в части b) (при установке с этой ошибкой ошибок нет)

И с импортом библиотеки Android, как и в части c) (Кажется, это рекомендуется в руководстве для разработчиков, но у меня есть ошибки компиляции с этим, eclipse не находит ссылок и я не могу построить проект):

Таким образом, импорт jar кажется лучшим, ошибок при компиляции и установке, но у меня есть другие ошибки после того, как я делаю вызов методам и классам из библиотеки:

2 – В приложении:

Когда я пытаюсь использовать помощник, чтобы проверить наличие XAPKFiles с помощью этого метода:

 boolean expansionFilesDelivered() { XAPKFile[] xAPKS = {new XAPKFile(true, 3, 687801613L) // main file only }; for (XAPKFile xf : xAPKS) { String fileName = Helpers.getExpansionAPKFileName(this, xf.mIsMain, xf.mFileVersion); if (!Helpers.doesFileExist(this, fileName, xf.mFileSize, false)) return false; } return true; } 

У меня этот сбой в DDMS:

 04-17 23:14:24.614: I/dalvikvm(23201): Could not find method com.google.android.vending.expansion.downloader.Helpers.getExpansionAPKFileName, referenced from method com.gmla.guideaudio.apkexp.GmlaCheckExpFiles.expansionFilesDelivered 04-17 23:14:24.614: W/dalvikvm(23201): VFY: unable to resolve static method 1295: Lcom/google/android/vending/expansion/downloader/Helpers;.getExpansionAPKFileName (Landroid/content/Context;ZI)Ljava/lang/String; 04-17 23:14:24.614: D/dalvikvm(23201): VFY: replacing opcode 0x71 at 0x001b 04-17 23:14:24.614: W/dalvikvm(23201): Unable to resolve superclass of Lcom/gmla/guideaudio/apkexp/GmlaDownloaderService; (250) 04-17 23:14:24.614: W/dalvikvm(23201): Link of class 'Lcom/gmla/guideaudio/apkexp/GmlaDownloaderService;' failed 04-17 23:14:24.614: E/dalvikvm(23201): Could not find class 'com.gmla.guideaudio.apkexp.GmlaDownloaderService', referenced from method com.gmla.guideaudio.apkexp.GmlaCheckExpFiles.onCreate 04-17 23:14:24.614: W/dalvikvm(23201): VFY: unable to resolve const-class 135 (Lcom/gmla/guideaudio/apkexp/GmlaDownloaderService;) in Lcom/gmla/guideaudio/apkexp/GmlaCheckExpFiles; 04-17 23:14:24.614: D/dalvikvm(23201): VFY: replacing opcode 0x1c at 0x001c 04-17 23:14:24.624: V/Performance(23201): >>com.gmla.guideaudio.apkexp.GmlaCheckExpFiles@40db32b0 onCreate 04-17 23:14:24.624: D/AndroidRuntime(23201): Shutting down VM 04-17 23:14:24.624: W/dalvikvm(23201): threadid=1: thread exiting with uncaught exception (group=0x40abf228) 04-17 23:14:24.624: E/AndroidRuntime(23201): FATAL EXCEPTION: main 04-17 23:14:24.624: E/AndroidRuntime(23201): java.lang.NoClassDefFoundError: com.google.android.vending.expansion.downloader.Helpers 04-17 23:14:24.624: E/AndroidRuntime(23201): at com.gmla.guideaudio.apkexp.GmlaCheckExpFiles.expansionFilesDelivered(GmlaCheckExpFiles.java:64) 04-17 23:14:24.624: E/AndroidRuntime(23201): at com.gmla.guideaudio.apkexp.GmlaCheckExpFiles.onCreate(GmlaCheckExpFiles.java:22) 04-17 23:14:24.624: E/AndroidRuntime(23201): at android.app.Activity.performCreate(Activity.java:4524) 04-17 23:14:24.624: E/AndroidRuntime(23201): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1071) 04-17 23:14:24.624: E/AndroidRuntime(23201): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2115) 04-17 23:14:24.624: E/AndroidRuntime(23201): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2189) 04-17 23:14:24.624: E/AndroidRuntime(23201): at android.app.ActivityThread.access$600(ActivityThread.java:139) 04-17 23:14:24.624: E/AndroidRuntime(23201): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1261) 04-17 23:14:24.624: E/AndroidRuntime(23201): at android.os.Handler.dispatchMessage(Handler.java:99) 04-17 23:14:24.624: E/AndroidRuntime(23201): at android.os.Looper.loop(Looper.java:154) 04-17 23:14:24.624: E/AndroidRuntime(23201): at android.app.ActivityThread.main(ActivityThread.java:4894) 04-17 23:14:24.624: E/AndroidRuntime(23201): at java.lang.reflect.Method.invokeNative(Native Method) 04-17 23:14:24.624: E/AndroidRuntime(23201): at java.lang.reflect.Method.invoke(Method.java:511) 04-17 23:14:24.624: E/AndroidRuntime(23201): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 04-17 23:14:24.624: E/AndroidRuntime(23201): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 04-17 23:14:24.624: E/AndroidRuntime(23201): at dalvik.system.NativeStart.main(Native Method) 

Этот сбой происходит, когда я использую метод 1 или 2, когда я импортирую библиотеки.

Я попытался обновить ant до версии 1.8.3, потому что я читал, что 1.7.1 может иметь некоторые проблемы с импортом библиотек .. без успеха при решении моих проблем.

Мое основное приложение – в Google API 8 (Android 2.2)

Я искал много вещей, чтобы заставить это работать, но теперь я полностью не в курсе!

Если кто-то знает, как получить эту работу, это будет очень мило: p

Извините за этот длинный пост и извините за мой английский, если я совершил ошибочные ошибки, это потому, что я французский: p

EDIT: я попробовал пример кода загрузчика с методом импорта библиотеки c) , на этот раз у меня нет ошибок компиляции, но во время установки:

 [2012-04-18 01:56:16 - GuideAudio] Android Launch! [2012-04-18 01:56:16 - GuideAudio] adb is running normally. [2012-04-18 01:56:16 - GuideAudio] Performing com.gmla.guideaudio.GuideAudio activity launch [2012-04-18 01:56:19 - GuideAudio] Uploading GuideAudio.apk onto device 'SH16PV801048' [2012-04-18 01:56:19 - GuideAudio] Installing GuideAudio.apk... [2012-04-18 01:56:21 - GuideAudio] Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY [2012-04-18 01:56:21 - GuideAudio] Please check logcat output for more details. [2012-04-18 01:56:21 - GuideAudio] Launch canceled! 

Я не понимаю, потому что библиотека, кажется, хорошо импортирована … Я вижу их в разделе «Связанная библиотека» в Eclipse.

Я также пишу на манифест:

 <uses-library android:name="com.google.android.vending.expansion.downloader" /> <uses-library android:name="com.google.android.vending.licensing" /> 

Ответ может быть ответом на аналогичный вопрос: https://stackoverflow.com/a/10109546/180538

У меня был этот вопрос два дня назад, и ответ решил. Особенно прочитал последний абзац.

Теги <uses-library> не предназначены для использования сторонними вещами, только для уже существующих библиотек, установленных на устройствах. Как и Maps, который устанавливается на каждом официальном устройстве Android (Amazon Kindle не является официальным устройством Android, как пример).

Я также не уверен, что вы добавили свои проекты библиотеки в свой проект и одновременно привязали банки. Это может также вызвать проблемы.

Для людей, которые читают это, правильный метод использования для импорта библиотеки расширений – это тот, который я назвал c) в своем первом сообщении.

Позаботьтесь о своей длине пути, когда вы импортируете библиотеку проектов в свой основной проект. Мой путь слишком длинный из-за моей папки установки Android SDK, которая не была на том же диске, что и моя рабочая область. Из-за этого из-за ошибки библиотеки. (Взял меня однажды, чтобы понять .. – _ -)

Я думаю, что реальная проблема здесь такова, как описано в этом ответе : Eclipse не может разрешать имена путей, если проект библиотеки с включенной библиотекой и реферирующий проект находятся в разных дисках. Например, библиотека в проекте C: and Referencing в D: