Android Studio 4.1 JAVA
Roomを使用してSQLITEデータベースを操作したく下記のリンクのサイトのとおり
入力しコンパイルがは通るのですが、エミュレータ、実機ともに実行すると
MainActivityを表示した瞬間に落ちてしまいます。
下記のソースサンプルを実行しても同じ箇所で落ちます。
public class MainActivity extends AppCompatActivity {
public static final int NEW_WORD_ACTIVITY_REQUEST_CODE = 1; private WordViewModel mWordViewModel; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); RecyclerView recyclerView = findViewById(R.id.recyclerview); final WordListAdapter adapter = new WordListAdapter(new WordListAdapter.WordDiff()); recyclerView.setAdapter(adapter); recyclerView.setLayoutManager(new LinearLayoutManager(this));
↓この個所でプログラムが落ちます。
mWordViewModel = new ViewModelProvider(this).get(WordViewModel.class);
} public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == NEW_WORD_ACTIVITY_REQUEST_CODE && resultCode == RESULT_OK) { Word word = new Word(data.getStringExtra(NewWordActivity.EXTRA_REPLY)); mWordViewModel.insert(word); } else { Toast.makeText( getApplicationContext(), R.string.empty_not_saved, Toast.LENGTH_LONG).show(); } }
public class WordViewModel extends AndroidViewModel {
private WordRepository mRepository; private final LiveData<List<Word>> mAllWords; public WordViewModel (Application application) { super(application); mRepository = new WordRepository(application); mAllWords = mRepository.getAllWords(); } LiveData<List<Word>> getAllWords() { return mAllWords; } public void insert(Word word) { mRepository.insert(word); }
}
ソースサンプル
GitHubhttps://github.com/googlecodelabs/android-room-with-a-view
あなたの回答
tips
プレビュー