Я должен отображать некоторые данные из базы данных даже после установки приложения. Для этого я пишу скрипт для этих операций вставки. И при повторной установке я выполняю этот скрипт, сохраненный на sdcard с помощью db.execSQL (toExec); заявление. Используя следующий фрагмент программы наглядноSqlite База данных не вставлена Использование скрипта в Proguard Build
//write code to execute script from file
SQLiteDatabase db = helper.getWritableDatabase();
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(Constants.DIR_PATH+"/"+Constants.SCRIPT_FILE_NAME));
String line;
while((line = reader.readLine())!=null)
{
line.trim();
AppLog.d(TAG, "Execute script with line: "+line);
try
{
db.execSQL(line);
}
catch(SQLiteException e)
{
AppLog.d(TAG, "Sqlite Excp with Line: "+line+e);
}
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
AppLog.d(TAG, "File Not Found to execute Script"+e1);
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Это прекрасно работает в обычной сборке. Но в сборке Proguard вложения не выполняются. Также обратите внимание, что для операций с базой данных я использую ORMLite. И в то время выполнения сценария базы данных уже создана
Я добавил следующие свойства в Proguard-project.txt
-keep class com.j256.**
-keepclassmembers class com.j256.** {
*;
}
-keep public class android.database.sqlite.**
Я не могу понять, что происходит.
Пожалуйста, помогите ...
Предоставьте свой код, пожалуйста – Peregreen
Я добавил код, можете ли вы указать, где я ошибаюсь – HemangNirmal
ваши классы DB и другие поля переименовываются в Proguard. Вы должны их исключить – Jim