Ton*_*ony 2 android dex aar androidx
当我使用WorkManager的PeriodicWorkRequest时,我一直在尝试制作一个android库。它作为主机开发应用程序中的模块完美运行。但是,一旦我将其导出为 aar 文件并在另一个应用程序中使用它,我会收到以下错误,
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/work/Worker;
.
.
.
Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.work.Worker" on path: DexPathList[[zip file "/data/app/com.example.testapp-0WusKIYjC1qsHRMASLjm1Q==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.testapp-0WusKIYjC1qsHRMASLjm1Q==/lib/arm64, /system/lib64, /vendor/lib64]]
Run Code Online (Sandbox Code Playgroud)
知道我该如何解决这个问题吗?
AAR 本身不会嵌入或以其他方式编码有关传递依赖项的任何内容(例如 AAR 对 WorkManager 的依赖项),因此,如果您只是将 AAR 用作本地二进制依赖项,则需要重新声明所有传递依赖。
根据Gradle 声明依赖项文档,正确的依赖项采用 Maven 存储库(本地或远程)的形式。Maven 存储库除了托管 AAR 本身之外,还包含一个POM 文件,该文件声明您的库所依赖的传递依赖项。这可确保您的构建中包含的每个库只有一个版本(因为它可以消除多个库之间的重复传递依赖项)。
在本地使用项目时,您不会看到同样的问题,因为这些传递依赖项包含在构建过程中。
| 归档时间: |
|
| 查看次数: |
3978 次 |
| 最近记录: |