2017-02-03 13 views
-2

Я хотел бы создать демонстрацию из своего приложения, поэтому я попытался создать еще один аромат, но если я попытаюсь запустить его, я получаю это исключение: пытается написать базу данных readonly (код 1032)База данных sqlite Android build

Оригинал Gradle

defaultConfig { 
     minSdkVersion 9 
     targetSdkVersion 24 
     applicationId 'com.myapp.foo' 
     versionCode 518 
     versionName '4.3.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

Из [SQLite документы] (https://www.sqlite.org/rescode.html#readonly_dbmoved) 'Код ошибки SQLITE_READONLY_DBMOVED является расширенный код ошибки для SQLITE_READONLY. Код ошибки SQLITE_READONLY_DBMOVED указывает, что нельзя изменить базу данных, поскольку файл базы данных был перемещен с момента ее открытия, поэтому любая попытка изменить базу данных может привести к повреждению базы данных, если процессы выйдут из строя, потому что журнал отката будет неправильно указан. ' Попробуйте удалить все версии своего приложения и установить демо-версию и посмотреть. Не знаю, поможет ли это – OmarBizreh

ответ

0

вы уверены, что лет У вас правильно настроен источник вашего вкуса, так что у вас есть только один SQLiteOpenHelper? Это означает, что у вас есть один под src/baz/java и один под src/foo/java, но не под src/main/java? Или просто один под src/main/java?

0

В разделе поставщика AndroidManifest.xml это должно быть как показано ниже.

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

Так что соответствующий идентификатор приложения будет заменен во время процесса сборки.

Кроме того, в вашем проекте, где бы вы ни находились, вы используете свой идентификатор приложения, его следует заменить заполнителем.

В файле Java, можно обращаться как

BuildConfig.APPLICATION_ID