2017-02-03 8 views
-2

私のアプリケーションからデモを作成したいので、別のフレーバーを構築しようとしましたが、実行しようとするとこの例外が発生します: 読み取り専用データベースコード1032)Androidビルドflavor sqliteデータベース

オリジナルのGradle

defaultConfig { 
     minSdkVersion 9 
     targetSdkVersion 24 
     applicationId 'com.myapp.foo' 
     versionCode 518 
     versionName '4.3.2' 
    } 

と、この2つの味と私のGradleである

defaultConfig { 
     minSdkVersion 9 
     targetSdkVersion 24 
    } 
productFlavors { 
    baz { 
     applicationId 'com.myapp.baz' 
     versionCode 1 
     versionName '1.0.0' 
    } 
    foo { 
     applicationId 'com.myapp.foo' 
     versionCode 518 
     versionName '4.3.2' 
    } 
} 
+0

としてアクセス可能なJavaファイルで

'SQLITE_READONLY_DBMOVEDエラーコードでありますSQLITE_READONLYの拡張エラーコード。 SQLITE_READONLY_DBMOVEDエラーコードは、データベースファイルが開かれてから移動されたためデータベースを変更できないことを示します。したがって、ロールバックジャーナルの名前が正しくないためプロセスがクラッシュした場合、データベースを変更しようとするとデータベースが破損する可能性があります。 ' あなたのアプリのすべてのバージョンを削除し、デモだけをインストールしてみてください。それが役立つかどうかわからない – OmarBizreh

答えて

0

は、あなたは確かよあなたは1つのSQLiteOpenHelperしか持てないように、あなたのフレーバー固有のソースを正しくセグメント化していますか? src/baz/javaの下にsrc/foo/javaの下に1つありますが、src/main/javaの下にはありません。または、src/main/javaの下にある1つだけですか?

0

AndroidManifest.xmlプロバイダセクションでは、次のようになります。

<provider 
     android:name="com.zoho.invoice.provider.ZInvoiceProvider" 
     android:authorities="${applicationId}" 
     android:writePermission="${applicationId}.permission.WRITE_SCHEDULE" /> 

ビルドプロセス中に適切なアプリケーションIDが置き換えられるようにします。

また、どこのプロジェクトでも、アプリケーションIDを使用する場合は、プレースホルダで置き換える必要があります。 、それは[SQLiteのドキュメント](https://www.sqlite.org/rescode.html#readonly_dbmoved)から

BuildConfig.APPLICATION_ID 
関連する問題