0

私はこのコードを使用してSQLiteDBをSDカードの場所(デバイス/ mnt / sdcard / MiniMate上の場所)に保存しています:

string libraryPath = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath;            
libraryPath = System.IO.Path.Combine(libraryPath, "MiniMate");
if (!System.IO.Directory.Exists(libraryPath)) System.IO.Directory.CreateDirectory(libraryPath);
            string path = System.IO.Path.Combine(libraryPath, sqliteFilename);

VisualStudioからデバイスへのデプロイを使用する場合は完璧に機能します。ただし、.apkを作成してデバイスにインストールすると、エラー「21」が表示されます。DBで何かを行うための権限ではないようです。DBに何かを挿入しようとすると、「制約」エラーが発生します。

誰かがこの問題を知っていますか?DBを別のデフォルトの場所に移動するつもりはありません。ありがとうございます。

私のマニフェストファイル:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.prismvs.minimate" android:versionCode="14" android:versionName="14">
  <uses-sdk android:targetSdkVersion="12" android:minSdkVersion="12" />
  <application android:icon="@drawable/icon" android:label="MiniMate">
  </application>
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.CAMERA" />
  <uses-permission android:name="android.permission.BLUETOOTH" />
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.SET_ORIENTATION" />
  <uses-permission android:name="android.permission.WRITE_OWNER_DATA" />
  <uses-permission android:name="android.permission.READ_OWNER_DATA" />
</manifest>
4

1 に答える 1

0

私は数日前にこれを投稿し、間違った方向に動いたために問題を見つけるために多くの時間を費やしました。この経験を共有したいと思います。誰かがAndroid用SQLite+Monoの問題を修正するのに役立つかもしれません。

  1. 私は別のプロジェクト(一般的なクロスプラットフォームプロジェクト)でメインアプリとユーザーがライブラリーしたプロジェクトを持っていました
  2. SQLiteはメインアプリケーションプロジェクトではなくユーザーライブラリで使用していました
  3. Google Play用のリリース(apk)をビルドしてAndroidデバイスにインストールすると、エラーログが発生しました:E / SQLiteLog(32375):(1)near ")":構文エラーE / SQLiteLog(32375):(21)APIが呼び出されましたNULLプリペアドステートメントE/SQLiteLog(32375):(21)[00bb9c9ce4]の63243行での誤用デバッグバージョンでは発生しなかったため、この問題を修正するために行ったこと:VisualStudionプロジェクトのプロパティ->MonoAndroidオプション- >リンク:「SDKとユーザーアセンブリ」ではなく「SDKアセンブリのみ」を設定しましたこのエラーは表示されなくなります。
于 2013-02-06T14:48:06.013 に答える