是否可以将AAR文件捆绑到安装时动态交付的应用程序bundle中



我试图将AR模块仅交付给API 24级的设备,但仍然支持API 21级的设备。当我为API 24级设备构建应用程序捆绑包时,它运行良好。然而,对于API 21级设备,它在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) 

结果是清单被合并了,这对活动来说很好,但对提供者来说就不那么好了。。。

最新更新