即使卸载应用程序后,我也必须显示数据库中的一些数据。为此,我正在为该插入操作编写脚本。在重新安装时,我正在使用 db.execSQL(toExec); 执行保存在 sdcard 上的脚本;陈述。使用以下代码片段
//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.**
我无法弄清楚发生了什么。
请帮忙...