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

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

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

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQLite

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

Android

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Q&A

解決済

1回答

297閲覧

Xamarin Android SQLite

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQLite

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

Android

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

0グッド

0クリップ

投稿2018/04/10 05:24

編集2018/04/10 05:50

前提・実現したいこと

Xamarin.AndroidにてSQLite.net-PCLを用いてアプリ内のデータを保存しようと考えています

とあるデータをネット上から取得しその時Activity1(Intentで遷移されたActivity)を閉じるときにデータを保存しようと思いOnDestroy()にて処理を書きました

そしてIntent呼び出し元のActivityからまた別の画面(Activity2)に遷移しデータを復元しようとした際、以下のようなエラーが出てしまいました

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

アプリケーションはブレークモードになっています お使いのアプリはブレーク状態になりましたが、すべてのスレッドが外部コードを実行していたため、表示されるコードはありません threadid=1: thread exiting with uncaught exception (group=0x41796c50) An unhandled exception occured.

該当のソースコード

C#

1 protected override void OnDestroy() 2{ 3 base.OnDestroy(); 4 data = new Data(); 5 data.KeyAt = "1"; 6 db.Insert(data); 7}

試したこと

あえてOnDestroy()とは別のところで保存して、元の画面に戻りActivity2に遷移すると問題なくデータの復元ができます
念のためOnPause()でも試してみましたが同じようにエラーが出ました
try catchでも同様のメッセージが出てくるので原因がわかりません

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

Xamarin Android
SQLite.Net-PCL

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

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

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

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

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

guest

回答1

0

ベストアンサー

直接の回答ではありませんが、 SQLite の代わりに LiteDB を使うのはいかがでしょう。

完全に C# で書かれたライブラリなので、エラーが発生したとき、少なくとも sqlite よりはわかりやすい情報を表示してくれるのではないかと期待しています。

Xamarin で使用できる SQLite のライブラリは複数種類があり、また

のようなネイティブ側の制限の影響を受けたりと混乱しがちです。SQLite である理由がないならば、LiteDB のような、他のDBを検討してもよいと思います。

投稿2018/06/21 09:34

amay077

総合スコア1075

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問