这是我的计划。
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
InitializeSQLCipher();
}
private void InitializeSQLCipher() {
SQLiteDatabase.loadLibs(this);
File databaseFile = getDatabasePath("demo.db");
databaseFile.mkdirs();
databaseFile.delete();
SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(databaseFile, "test123", null);
database.execSQL("create table t1(a, b)");
database.execSQL("insert into t1(a, b) values(?, ?)", new Object[]{"one for the money",
"two for the show"});
}
}
我在这个程序中添加了三个库,这个链接在这个链接中........ https://github.com/sqlcipher/android-database-sqlcipher
现在我的查询是我收到以下错误。如何克服以获得完美的解决方案...
04-12 11:47:27.379: E/AndroidRuntime(2163): FATAL EXCEPTION: main
04-12 11:47:27.379: E/AndroidRuntime(2163): java.lang.NoClassDefFoundError: net.sqlcipher.database.SQLiteDatabase
04-12 11:47:27.379: E/AndroidRuntime(2163): at com.example.testproject.MainActivity.InitializeSQLCipher(MainActivity.java:43)
04-12 11:47:27.379: E/AndroidRuntime(2163): at com.example.testproject.MainActivity.onCreate(MainActivity.java:37)
04-12 11:47:27.379: E/AndroidRuntime(2163): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-12 11:47:27.379: E/AndroidRuntime(2163): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) .... and so on ...
答案 0 :(得分:1)
无法找到您的图书馆。如果它是一个jar,你把它放在你的libs文件夹中并将它添加到项目中吗?您是否在导出选项卡上导出了它?如果它是一个库项目,你是否将其添加为库?如果是这样,它会在project.properties中添加引用吗?
如果所有这些都是正确的,请尝试make clean,eclipse可能只需要重新编译所有内容。
答案 1 :(得分:1)
即使在库具有必需的jar文件之后,我也遇到了同样的问题。解决了它,通过修改Proguard配置文件。显然,Proguard通过删除lib来优化APK。因此,如果您使用的是Proguard,您可能需要查看配置文件。