我正在开发一个插件(Gradle java项目),该插件应独立于PC或Android OS架构上运行。 在这个插件中(输出:.jar文件)我想初始化数据库,持久化文档和查询文档。保存的文件将是
稍后我会在我的PC项目的java项目和Android项目中使用这个.jar文件。
我选择“couchbase lite java”作为其nosql,提供密码安全性并且还具有服务器同步功能。
compile group: 'com.couchbase.lite', name: 'couchbase-lite-java-core', version: '1.4.0'
compile group: 'com.couchbase.lite', name: 'couchbase-lite-java', version: '1.4.0'
现在如果我运行我的项目在我的桌面上使用Java 8创建数据库它可以正常工作,而当我在android项目上运行这个程序时,由于本机支持(正如预期的那样)它失败了。
Process: com.bosch.bethere, PID: 24623
java.lang.UnsatisfiedLinkError: No implementation found for long com.couchbase.lite.internal.database.sqlite.SQLiteConnection.nativeOpen(java.lang.String, int, java.lang.String, boolean, boolean) (tried Java_com_couchbase_lite_internal_database_sqlite_SQLiteConnection_nativeOpen and Java_com_couchbase_lite_internal_database_sqlite_SQLiteConnection_nativeOpen__Ljava_lang_String_2ILjava_lang_String_2ZZ)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:194)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:178)
是否有来自Couchbase的支持在Android和PC JVM上运行不同的架构?有什么我想念的吗?
还有其他任何持久性框架可以解决我的需求吗?
答案 0 :(得分:1)
简短的回答是,虽然Java和Android API(版本1.x)几乎相同,但底层依赖关系不是。因此,在包含库以包含每个平台的正确附加功能时,您需要额外的构建步骤。