存在し、データベースのための部屋を追加しないエラーを示していますが、エラーが、私はすべてのものを追加していGradleのファイルでAndroidの部屋はAppDatabase_Implは私がアプリを開発しています
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.android/com.app.android.activities.AttendanceActivity}: java.lang.RuntimeException: cannot find implementation for com.app.android.db.AppDatabase. AppDatabase_Impl does not exist
であることを示しています。私のgradleファイルは以下の通りです。知りません。何が問題ですか。このコードは別のアプリケーションで動作しています。しかし、それはこのアプリケーションで示しています。親切に私を助けてください。
apply plugin: 'com.android.application'
apply plugin: 'realm-android'
android {
useLibrary 'org.apache.http.legacy'
compileSdkVersion 25
buildToolsVersion '26.0.2'
defaultConfig {
applicationId 'com.app.android'
minSdkVersion 14
targetSdkVersion 25
versionCode 16
// edumia versionCode 16
versionName "2.0.5"
// edumia versionName "2.0.5"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
debug {
debuggable true
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
}
repositories {
jcenter()
maven {
url 'https://github.com/uPhyca/stetho-realm/raw/master/maven-repo'
}
maven {
url 'https://dl.bintray.com/ayz4sci/maven/'
}
}
allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
}
dependencies {
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
compile fileTree(include: ['*.jar'], dir: 'libs')
compile group: 'org.apache.httpcomponents', name: 'httpclient-android', version: '4.3.5.1'
compile 'com.android.support:appcompat-v7:21.0.+'
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.3.1'
compile 'com.facebook.shimmer:shimmer:[email protected]'
compile 'com.afollestad.material-dialogs:core:0.9.3.0'
compile 'com.afollestad.material-dialogs:commons:0.9.3.0'
compile 'com.facebook.stetho:stetho:1.4.1'
compile 'com.uphyca:stetho_realm:2.0.0'
compile 'com.evernote:android-job:1.1.11'
compile 'com.firebase:firebase-jobdispatcher:0.6.0'
compile 'com.android.support:design:25.0.0'
compile 'com.ss.bannerslider:bannerslider:1.6.1'
compile 'com.android.support:recyclerview-v7:23.1.1'
compile 'com.android.support:cardview-v7:23.1.1'
compile 'com.ayz4sci.androidfactory:downloadprogress:1.0.2'
compile('com.alibaba.android:ultraviewpager:[email protected]') {
transitive = true
}
compile 'android.arch.lifecycle:extensions:1.0.0-rc1';
compile 'android.arch.persistence.room:runtime:1.0.0-rc1';
annotationProcessor 'android.arch.lifecycle:compiler:1.0.0-rc1';
annotationProcessor 'android.arch.persistence.room:compiler:1.0.0-rc1';
}
MainActivity.java
public class AttendanceActivity extends ActionBarActivity {
private Class_ class_;
private AppDatabase database;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
database = AppDatabase.getDatabase(getApplicationContext());
database.classDao().removeAllUsers();
Class_ aClass = new Class_(1,"model");
database.classDao().addClass(aClass);
Log.d(TAG, "added success");
}
AppDatabase.java
public abstract class AppDatabase extends RoomDatabase{
private static AppDatabase INSTANCE;
public abstract ClassDao classDao();
public static AppDatabase getDatabase(Context context) {
if (INSTANCE == null) {
INSTANCE =
Room.databaseBuilder(context, AppDatabase.class, "edumiadatabase")
//Room.inMemoryDatabaseBuilder(context.getApplicationContext(), AppDatabase.class)
// To simplify the exercise, allow queries on the main thread.
// Don't do this on a real app!
.allowMainThreadQueries()
// recreate the database if necessary
.fallbackToDestructiveMigration()
.build();
}
return INSTANCE;
}
public static void destroyInstance() {
INSTANCE = null;
}
}
Class_.java
public class Class_ {
@PrimaryKey
public int id;
public String Class_;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getClass_() {
return Class_;
}
public void setClass_(String class_) {
Class_ = class_;
}
public Class_(int id, String class_){
this.id=id;
this.Class_ = class_;
}
}
ClassDao.java
@Dao
public interface ClassDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
void addClass(Class_ user);
@Query("delete from user")
void removeAllUsers();
}
データベースクラスの '@ Database'アノテーションと、あなたのエンティティの' @ Entity'が欠けているようです。 – Thorbear
'@ Database'と' @ Entity'を追加しましたが、別のエラーが表示されます。https://developer.android.com/training/data-storage/room/index.html –
新しいエラーは何ですか?これらの注釈はRoom to workに必要ですが、新しいエラーはあなたがもう少し進んでいくことを意味します。 野生の推測では、私は 'ユーザからの削除 'に関してそのようなテーブルがない(あなたのエンティティは' class_'と呼ばれるテーブルを生成します)ので不平を言います。 私はRoom 1.0.0がリリースされたので、rc1を使い続ける理由はないことにも気付くでしょう。 – Thorbear