【问题标题】:Project with androidx.room packed into aar library causes java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/room/RoomDatabaseandroidx.room 打包到 aar 库中的项目导致 java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/room/RoomDatabase
【发布时间】:2021-05-13 22:37:27
【问题描述】:

这是我在此资源上没有找到任何解决方案的问题,所以请分享一些知识。 我制作了一个可以作为模块正常工作的库。 这是它的等级:

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 而不会发生崩溃的解决方案?

【问题讨论】:

  • 你找到解决办法了吗?
  • 你找到解决办法了吗?
  • 您找到解决方案了吗?我今天发现了同样的问题
  • 即使我被困在同一个问题上。有什么解决办法吗?

标签: android kotlin android-room android-library aar


【解决方案1】:

我们还必须将 room 依赖添加到 app 模块(导入 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"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-23
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-07
    相关资源
    最近更新 更多