更新到Android L之后,我遇到了这样的错误,不过之前(在Android 4.4 Nexus 7 2013上)一切都很好:
java.lang.NoSuchFieldError: no "I" field "mConnectionPtr" in class "Landroid/database/sqlite/SQLiteConnection;" or its superclasses at com.couchbase.touchdb.TDCollateJSON.nativeRegisterCustomCollators(Native Method) at com.couchbase.touchdb.TDCollateJSON.registerCustomCollators(TDCollateJSON.java:11) at com.couchbase.lite.android.AndroidSQLiteStorageEngine.open(AndroidSQLiteStorageEngine.java:46) at com.couchbase.lite.Database.open(Database.java:909) at com.couchbase.lite.Manager.getDatabase(Manager.java:228) at com.explain.messenger.model.utils.CBHelper.init(CBHelper.java:55)
尝试创建数据库后发生执行:
manager = new Manager(new AndroidContext(appContext), Manager.DEFAULT_OPTIONS); Database db = manager.getDatabase("db_name"); // exception here
有谁知道如何解决它?
问题得到解决.使用来自Master CouchBase Lite的这个版本 - build 463
或者等待新版本1.0.3发布.
compile 'com.couchbase.lite:couchbase-lite-android:0.0.0-463'
<dependency> <groupId>com.couchbase.lite</groupId> <artifactId>couchbase-lite-android</artifactId> <version>0.0.0-463</version> </dependency>
感谢Tleyden