2017-02-03 4 views
-2

Ich möchte eine Demo von meiner Anwendung erstellen, also habe ich versucht, einen anderen Geschmack zu bauen, aber wenn ich versuche, es auszuführen, bekomme ich diese Ausnahme: Versuch, eine Readonly-Datenbank zu schreiben (Code 1032)Android Build Geschmack sqlite Datenbank

Original-Gradle

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

und das ist mein gradle mit den beiden Aromen

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

Von [SQLite docs] zugegriffen werden (https://www.sqlite.org/rescode.html#readonly_dbmoved) 'Der SQLITE_READONLY_DBMOVED Fehlercode ist ein erweiterter Fehlercode für SQLITE_READONLY. Der Fehlercode SQLITE_READONLY_DBMOVED gibt an, dass eine Datenbank nicht geändert werden kann, weil die Datenbank seit dem Öffnen verschoben wurde. Daher kann jeder Versuch, die Datenbank zu ändern, zu Datenbankbeschädigungen führen, wenn die Prozesse nicht korrekt benannt werden. ' Versuchen Sie alle Versionen Ihrer App zu entfernen und installieren Sie nur die Demo und sehen Sie. Ich weiß nicht, ob es helfen würde – OmarBizreh

Antwort

0

Sind Sie sicher, yo Haben Sie Ihre geschmackspezifische Quelle korrekt segmentiert, so dass Sie nur einen SQLiteOpenHelper haben? Das heißt, Sie haben einen unter src/baz/java und einen unter src/foo/java, aber keinen unter src/main/java? Oder nur einen einzigen unter src/main/java?

0

In Ihrem AndroidManifest.xml Provider-Abschnitt sollte es wie folgt aussehen.

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

So wird die entsprechende Anwendungs-ID während des Build-Prozesses ersetzt.

Auch in Ihrem gesamten Projekt, wo immer Sie Ihre Anwendungs-ID verwenden, sollte durch den Platzhalter ersetzt werden.

In Ihrer Java-Datei, kann es als

BuildConfig.APPLICATION_ID