这是我在这个资源上没有找到任何解决方案的问题,所以请分享一些知识。 我制作了一个可以作为模块正常工作的库。 这是它的等级:
def room_version = "2.2.6"
implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"
implementation "androidx.room:room-ktx:$room_version"
implementation "androidx.room:room-rxjava2:$room_version"
现在,当我将它组装到 AAR 中时,程序崩溃并显示 java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/room/RoomDatabase
当我用谷歌搜索这个问题时,发现这是一个常见问题,解决方案是从 androidx.room
切换到 android.arch.persistence.room
。但是那个旧版本没有我正在使用的 room-rxjava2
。
那么,也许有人知道在 AAR 中使用 androidx.room
而不会崩溃的解决方案?
最佳答案
我们还必须将 room 依赖项添加到应用程序模块(导入 aar 的位置)以支持带有 room-rxJava2 的 androidx.room:
def room_version = "2.3.0"
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
// To use Kotlin annotation processing tool
kapt("androidx.room:room-compiler:$room_version")
// RxJava2 support for Room
implementation "androidx.room:room-rxjava2:$room_version"
关于android - 将 androidx.room 打包到 aar 库中的项目导致 java.lang.NoClassDefFoundError : Failed resolution of: Landroidx/room/RoomDatabase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66133537/