Java 在android studio中构建maven项目
在构建dain/leveldb(leveldb的纯java实现(用于在chronium中存储本地存储的key/value db))的jar之后: 使用java 8,并将它们导入到一个存根android项目中(构建/安装成功),我得到了以下异常:Java 在android studio中构建maven项目,java,android,maven,android-studio,dependencies,Java,Android,Maven,Android Studio,Dependencies,在构建dain/leveldb(leveldb的纯java实现(用于在chronium中存储本地存储的key/value db))的jar之后: 使用java 8,并将它们导入到一个存根android项目中(构建/安装成功),我得到了以下异常: com.example.stubproject E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.stubproject, PID: 25695 java.lang
com.example.stubproject E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.stubproject, PID: 25695
java.lang.NoSuchMethodError: No virtual method keySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView; in class Ljava/util/concurrent/ConcurrentHashMap; or its super classes (declaration of 'java.util.concurrent.ConcurrentHashMap' appears in /system/framework/core-oj.jar)
at org.iq80.leveldb.util.Finalizer.destroy(Finalizer.java:104)
at org.iq80.leveldb.impl.TableCache.close(TableCache.java:107)
at org.iq80.leveldb.impl.DbImpl.close(DbImpl.java:270)
at com.example.stubproject.MainActivity.onCreate(MainActivity.java:49)
at android.app.Activity.performCreate(Activity.java:7327)
at android.app.Activity.performCreate(Activity.java:7318)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1275)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3095)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3258)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1955)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7073)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
当我尝试关闭数据库时会发生这种情况:
// Make sure you close the db to shutdown the
// database and avoid resource leaks.
try {
db.close(); // <= EX THROWN HERE
} catch (IOException e) {
e.printStackTrace();
}
//确保关闭数据库以关闭数据库
//数据库,避免资源泄漏。
试一试{
db.close()//
Options options = new Options();
options.createIfMissing(true);
DB db = null;
try {
String cwd = getApplicationInfo().dataDir;
Log.d(TAG, "cwd: " + cwd);
String dirName = "leveldb_demo";
File directory = new File(cwd + File.separator + dirName);
if (! directory.exists()){
directory.mkdir();
// If you require it to make the entire directory path including parents,
// use directory.mkdirs(); here instead.
}
db = factory.open(new File(cwd + File.separator + dirName), options);
} catch (IOException e) {
e.printStackTrace();
}
try {
Log.d(TAG, "writing to db:");
db.put(bytes("Tampa"), bytes("rocks"));
Log.d(TAG, "reading from db:");
String value = asString(db.get(bytes("Tampa")));
Log.d(TAG, "read: " + value);
} finally {
// Make sure you close the db to shutdown the
// database and avoid resource leaks.
try {
db.close(); // <= EX THROWN HERE
} catch (IOException e) {
e.printStackTrace();
}