Можно ли объединить файлы AAR в пакет приложений, который динамически доставляется во время установки? - PullRequest
1 голос
/ 13 апреля 2020

Я пытаюсь доставить модуль AR только на устройства уровня API 24, но все еще поддерживаю устройства уровня API 21. Когда я собираю комплект приложений для устройства API lvl 24, он работает нормально. Однако для устройств уровня 21 API происходит сбой при запуске приложения с ClassNotFoundException, когда он пытается загрузить класс в файл библиотеки, который предназначен только для API 24.

Мне кажется, что импорт gradle определяет определения классов для загрузки при запуске, а не что-либо, сделанное из bundletool.

Кто-нибудь имел успех сделать что-то подобное? Это не поддерживается? Полная трассировка стека ниже.

java.lang.RuntimeException: Unable to get provider the.class.in.the.module.library: java.lang.ClassNotFoundException: Didn't find class "the.class.in.the.module.library" on path: DexPathList[[zip file "/data/app/com.my.app==/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app==/lib/x86, /system/lib, /system/product/lib]]
    at android.app.ActivityThread.installProvider(ActivityThread.java:6988)
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:6528)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6445)
    at android.app.ActivityThread.access$1300(ActivityThread.java:219)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7356)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
 Caused by: java.lang.ClassNotFoundException: Didn't find class "the.class.in.the.module.library" on path: DexPathList[[zip file "/data/app/com.my.app==/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app==/lib/x86, /system/lib, /system/product/lib]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
    at android.app.AppComponentFactory.instantiateProvider(AppComponentFactory.java:147)
    at androidx.core.app.CoreComponentFactory.instantiateProvider(CoreComponentFactory.java:60)
    at android.app.ActivityThread.installProvider(ActivityThread.java:6972)
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:6528) 
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6445) 
    at android.app.ActivityThread.access$1300(ActivityThread.java:219) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859) 
    at android.os.Handler.dispatchMessage(Handler.java:107) 
    at android.os.Looper.loop(Looper.java:214) 
    at android.app.ActivityThread.main(ActivityThread.java:7356) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 

1 Ответ

0 голосов
/ 13 апреля 2020

Оказывается, манифесты объединены, что хорошо для деятельности, но не так много для поставщиков ...

...