web-dev-qa-db-ja.com

Android RoomDatabase-未解決の参照@Entityおよびその他のアノテーション

アプリでAndroid Room Persistenceライブラリ(v.1.0.0-alpha1)を使用しています。正常に動作していますが、Androidスタジオでモデルクラス(Kotlin Dataクラス)を開くと、@ EntityのようなRoomデータベースに使用されるすべてのアノテーションの未解決の参照が表示されます、@ ColumnInfoなど。Archライブラリのバージョンを1.0.0-alpha5に変更しようとしましたが、結果は同じでした。

Lint検査では、インポートされたすべての注釈に対して非推奨のシンボルインポートを削除すると表示されます。ASは以前はこのエラーを表示していませんでした。

この問題を解決するにはどうすればよいですか

編集以下はbuild.gradleに追加したインポートです

compile "Android.Arch.persistence.room:runtime:1.0.0-alpha5"

compile "Android.Arch.persistence.room:rxjava2:1.0.0-alpha5"

annotationProcessor "Android.Arch.persistence.room:compiler:1.0.0-alpha5"

kapt "Android.Arch.persistence.room:compiler:1.0.0-alpha5"
8
silwar

ここに例があります。

https://github.com/jsperk/PocRoom

追加する必要があることを忘れないでください:

Gradle(プロジェクト)-> maven

Gradle(モジュールアプリ)の依存関係->

implementation "Android.Arch.persistence.room:runtime:1.0.0"
annotationProcessor "Android.Arch.persistence.room:compiler:1.0.0"
testImplementation "Android.Arch.persistence.room:testing:1.0.0"
implementation "Android.Arch.persistence.room:rxjava2:1.0.0"
6
Jsperk

私のプロジェクトでは、私が使用している原因としてこの質問があります

Android.Arch.lifecycle:livedata:1.1.1

バージョン1.1.1または1.0.0の部屋を使用しても、Android.Arch.persistence.room.Entityを見つけることができません。

LiveDataの実装を削除すると、問題が解決することがわかるまで、長い間検索してきました。次に、これら2つのライブラリのバージョンが競合していることに気付きました。最後に、livedataとroomに同じバージョンの1.1.0を使用し(livedataには1.0.0のバージョンがないため)、それを解決しました。

def Arch_version = "1.1.0"
implementation  "Android.Arch.persistence.room:runtime:$Arch_version"
annotationProcessor "Android.Arch.persistence.room:compiler:$Arch_version"
implementation "Android.Arch.persistence.room:rxjava2:$Arch_version"
implementation "Android.Arch.persistence.room:common:$Arch_version"
implementation "Android.Arch.lifecycle:livedata:$Arch_version"
implementation "Android.Arch.lifecycle:extensions:$Arch_version"
3
Lam