質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

1142閲覧

Roomでのデータベースへの書き込み方法(エラーの解消)

Kokeshi432

総合スコア15

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2020/02/18 06:34

編集2020/02/18 06:36

前提・実現したいこと

Entityのインスタンスを作り、それをデータベースに保存する際に以下のようなエラーが発生しました。
どのようにすればエラーを解消できますでしょうか?

コメントアウトしているLogの出力もエラーで行えなかったため、
インスタンスの生成がうまく行っていないのかと考えております。

Roomデータベースは初めて使うため、その他理解の間違っている点などありましたらご教授頂けますと幸いです。

発生している問題・エラーメッセージ

Attempt to invoke virtual method 'void com.example.app.viewmodel.ViewModel.insert(com.example.app.model.Data)' on a null object reference

実行したメソッド(LocationService.java内)

java

1private void writeToDatabase(double latitude, double longitude, double accuracy, String created_at) { 2 3 Data data = new Data(latitude, longitude, accuracy, created_at); 4 //Log.e("test", Data.getCreated_at()); 5 viewModel.insert(data); 6}

Entity.java

java

1@Entity(tableName = "data_table") 2public class Data { 3 @PrimaryKey(autoGenerate = true) 4 public int _id; 5 6 @ColumnInfo(name = "latitude") 7 @NonNull 8 public double latitude; 9 10 @ColumnInfo(name = "longitude") 11 @NonNull 12 public double longitude; 13 14 @ColumnInfo(name = "accuracy") 15 @NonNull 16 public double accuracy; 17 18 @ColumnInfo(name = "created_at") 19 @NonNull 20 public String created_at; 21 22 23 public Local_LocationData(double latitude, double longitude, double accuracy, String created_at) { 24 } 25 26 public void set_id(int _id) { 27 this._id = _id; 28 } 29 30 public void setLatitude(double latitude) { 31 this.latitude = latitude; 32 } 33 34 public void setLongitude(double longitude) { 35 this.longitude = longitude; 36 } 37 38 public void setAccuracy(double accuracy) { 39 this.accuracy = accuracy; 40 } 41 42 public void setCreated_at(String created_at) { 43 this.created_at = created_at; 44 } 45 46 @NonNull 47 public int getId() { 48 return _id; 49 } 50 51 @NonNull 52 public double getLatitude() { 53 return latitude; 54 } 55 56 @NonNull 57 public double getLongitude() { 58 return longitude; 59 } 60 61 @NonNull 62 public double getAccuracy() { 63 return accuracy; 64 } 65 66 @NonNull 67 public String getCreated_at() { 68 return created_at; 69 } 70}

補足情報(FW/ツールのバージョンなど)

情報が不十分の場合はコメント頂ければ対応致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2020/02/20 20:32

viewModel.insert(data); の viewModel が null のようなので、viewModel をどうやって作ってるかご確認ください。
guest

回答1

0

自己解決

public Local_LocationData(double latitude, double longitude, double accuracy, String created_at) { this.latitude = latitude; this.longitude = longitude; this.accuracy = accuracy; this.created_at = created_at; }

のようにEntityに値が代入できておらず、insertでエラーが起きていました。
ご返信いただきありがとうございました。

投稿2020/04/21 16:23

Kokeshi432

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問