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

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

新規登録して質問してみよう
ただいま回答率
87.20%
Android Studio

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

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

受付中

「realm= Realm.getDefaultInstance()」の一文を記述するとエミュレータクラッシュしてしまいます。

msuke
msuke

総合スコア10

Android Studio

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

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0回答

0評価

0クリップ

100閲覧

投稿2022/05/08 02:59

編集2022/05/16 09:17

前提

書籍でkotlinの学習中。
Realmでデータを保存する等の処理をしたい

実現したいこと

エミュレータクラッシュするので、改善したい

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

realm= Realm.getDefaultInstance() を記述するとエミュレータがクラッシュする。 (消すと、一応正常に起動する)

該当のソースコード

EditActivity.kt

package com.example.samplerealm import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.EditText import android.widget.Toast import io.realm.Realm import io.realm.kotlin.createObject import io.realm.kotlin.where import java.util.* class EditActivity : AppCompatActivity() { private val tag = "BloodPressure" private lateinit var realm:Realm override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_edit) val maxEdit:EditText= findViewById(R.id.maxEdit) val minEdit:EditText= findViewById(R.id.minEdit) val pulseEdit: EditText =findViewById(R.id.pulseEdit) val btnSave:Button = findViewById(R.id.btnSave) val btnDelete: Button =findViewById(R.id.btnDelete) realm= Realm.getDefaultInstance()//(※クラッシュ) btnSave.setOnClickListener { var max:Long =0 var min:Long =0 var pulse:Long =0 if(!maxEdit.text.isNullOrEmpty()){ max = maxEdit.text.toString().toLong() } if(!minEdit.text.isNullOrEmpty()){ min = minEdit.text.toString().toLong() } if(pulseEdit.text.isNullOrEmpty()){ pulse=pulseEdit.text.toString().toLong() } realm.executeTransaction{ val maxId = realm.where<BloodPress>().max("id") val nextId =(maxId?.toLong()?:0L)+1L val bloodPress =realm.createObject<BloodPress>(nextId) bloodPress.dateTime = Date() bloodPress.max = max bloodPress.mim = min bloodPress.pulse = pulse } Toast.makeText(applicationContext,"保存しました",Toast.LENGTH_LONG).show() finish() } } override fun onDestroy() { super.onDestroy() realm.close() } }

試したこと

realm= Realm.getDefaultInstance()
の一文を消すと、エミュレータは正常に起動する。
ただし、realm= Realm.getDefaultInstance()を消していいのか、
あるいは(書籍が古いため)別の書き方にしないといけないのか、判断できないため質問させていただきました。

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

AndroidStudio Chipmunk | 2021.2.1

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Android Studio

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

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。