こんにちはAndroidでsqliteデータベースを作成するときにいくつかの問題があります。
エミュレーターですべて問題なく、データベースを作成できます。ただし、実際のマシンでは機能しません。携帯電話でアプリケーションをデバッグしようとしたところ、データベースの作成に失敗しました。
だから誰も私の出来事を教えてもらえますか?マニフェストファイルに追加する必要がある特別な権限はありますか? ACCESS_CHECKIN_PROPERTIESまたはWRITE_EXTERNAL_STORAGEを試しましたが、それでもデータベースを取得できません。
ちなみに、カスタムデータベースはsdカードにのみ保存できますが、ルートディレクトリは保存できますか?
どうもありがとうございました!!
エラーのフィードバックがないと、コードのどこに問題があるのかを知ることができません。それにもかかわらず、私はあなたがそうすることをあなたに言うことができますnot必要ACCESS_CHECKIN_PROPERTIES
独自のデータベースを使用するため。 WRITE_EXTERNAL_STORAGE
sdcardにアクセスしようとしない限り。
データベースは、デフォルトで内部ストレージのアプリフォルダーのサブフォルダーに保存されます。
/data/data/YOUR_APP/databases/YOUR_DATABASAE.db
物理デバイスでそれを行う場合は、ルート化する必要があります。
私はまったく同じ問題を抱えていました。私のアプリケーションはエミュレータ上にデータベースを作成し、データを読み書きしましたが、デバイス上でクラッシュしました。
私はこれに対する非常に単純な解決策を見つけました:デバイスのデータベースを手動で/data/data/YOUR_APP/databases/YOUR_DATABASAE.dbで削除してから、アプリを再実行します。
私の場合はうまくいきました、それが役に立てば幸いです。
解決は非常に簡単です。dbJavaファイルの場合、public static final String DB_NAME = "tasks.db";
.db拡張子を忘れないでください
お使いの携帯電話に以前のバージョンのアプリがインストールされているため、この問題が発生している可能性があります。新しいバージョンをインストールする前に、「アプリケーションマネージャ」で以前のバージョンをアンインストールしてみてください。私はこのように解決します。
最初に権限とランタイム取得権限を確認しましたが、targetSdkVersionが25だったので問題は解決しませんでした。dbを使用せずに.dbのEXTENSIONを使用しても常に問題なく機能しますが、targetSdkVersionの25にはEXTENSIONが必要であるようです。 dbと私の問題は解決しました。
設定からアプリのアプリデータを消去し、.db拡張子の付いたdbファイルの名前を変更してアプリをアンインストールして実行しました。