Ibm mobilefirst Android 4.4上的IBM Worklight 6.1 JsonStore问题
我已经升级到Worklight 6.1&我希望我在这里提到的问题能够得到解决,我的应用程序现在应该可以正常工作了。但仍然面临Android 4.4中的JSONStore初始化问题。请查看下面的日志Ibm mobilefirst Android 4.4上的IBM Worklight 6.1 JsonStore问题,ibm-mobilefirst,jsonstore,Ibm Mobilefirst,Jsonstore,我已经升级到Worklight 6.1&我希望我在这里提到的问题能够得到解决,我的应用程序现在应该可以正常工作了。但仍然面临Android 4.4中的JSONStore初始化问题。请查看下面的日志 12-10 14:58:30.630: D/dalvikvm(14826): No JNI_OnLoad found in /data/app-lib/com.Test-2/libsqlcipher_android.so 0x41e371b0, skipping init 12-10 14:58:30
12-10 14:58:30.630: D/dalvikvm(14826): No JNI_OnLoad found in /data/app-lib/com.Test-2/libsqlcipher_android.so 0x41e371b0, skipping init
12-10 14:58:30.630: D/dalvikvm(14826): Trying to load lib /data/app-lib/com.Test-2/libdatabase_sqlcipher.so 0x41e371b0
12-10 14:58:30.630: W/linker(14826): libdatabase_sqlcipher.so has text relocations. This is wasting memory and is a security risk. Please fix.
12-10 14:58:30.630: E/dalvikvm(14826): dlopen("/data/app-lib/com.Test-2/libdatabase_sqlcipher.so") failed: dlopen failed: cannot locate symbol "_ZN7android10MemoryBaseC1ERKNS_2spINS_11IMemoryHeapEEElj" referenced by "libdatabase_sqlcipher.so"...
12-10 14:58:30.640: E/jsonstore-core(14826): Error during provision
12-10 14:58:30.640: E/jsonstore-core(14826): java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "_ZN7android10MemoryBaseC1ERKNS_2spINS_11IMemoryHeapEEElj" referenced by "libdatabase_sqlcipher.so"...
12-10 14:58:30.640: E/jsonstore-core(14826): at java.lang.Runtime.loadLibrary(Runtime.java:364)
12-10 14:58:30.640: E/jsonstore-core(14826): at java.lang.System.loadLibrary(System.java:526)
12-10 14:58:30.640: E/jsonstore-core(14826): at net.sqlcipher.database.SQLiteDatabase.loadLibs(SQLiteDatabase.java:144)
12-10 14:58:30.640: E/jsonstore-core(14826): at net.sqlcipher.database.SQLiteDatabase.loadLibs(SQLiteDatabase.java:137)
12-10 14:58:30.640: E/jsonstore-core(14826): at com.worklight.androidgap.jsonstore.database.DatabaseManager.openDatabaseIfNecessary(DatabaseManager.java:173)
12-10 14:58:30.640: E/jsonstore-core(14826): at com.worklight.androidgap.jsonstore.database.DatabaseManager.checkDatabaseAgainstSchema(DatabaseManager.java:87)
12-10 14:58:30.640: E/jsonstore-core(14826): at com.worklight.androidgap.plugin.storage.ProvisionActionDispatcher.isSchemaMismatched(ProvisionActionDispatcher.java:155)
12-10 14:58:30.640: E/jsonstore-core(14826): at com.worklight.androidgap.plugin.storage.ProvisionActionDispatcher.dispatch(ProvisionActionDispatcher.java:293)
12-10 14:58:30.640: E/jsonstore-core(14826): at com.worklight.androidgap.plugin.storage.BaseActionDispatcher.dispatch(BaseActionDispatcher.java:87)
12-10 14:58:30.640: E/jsonstore-core(14826): at com.worklight.androidgap.plugin.storage.DispatchingPlugin$ActionDispatcherRunnable.run(DispatchingPlugin.java:113)
12-10 14:58:30.640: E/jsonstore-core(14826): at com.worklight.androidgap.plugin.storage.DispatchingPlugin$SerialExecutor$1.run(DispatchingPlugin.java:147)
12-10 14:58:30.640: E/jsonstore-core(14826): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
12-10 14:58:30.640: E/jsonstore-core(14826): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
12-10 14:58:30.640: E/jsonstore-core(14826): at java.lang.Thread.run(Thread.java:841)
12-10 14:58:30.650: E/Test(14826): init notification error:----->{
12-10 14:58:30.650: E/Test(14826): "src": "initCollection",
12-10 14:58:30.650: E/Test(14826): "err": -1,
12-10 14:58:30.650: E/Test(14826): "msg": "PERSISTENT_STORE_FAILURE",
12-10 14:58:30.650: E/Test(14826): "col": "Notification",
12-10 14:58:30.650: E/Test(14826): "usr": "TestUser",
12-10 14:58:30.650: E/Test(14826): "doc": {},
12-10 14:58:30.650: E/Test(14826): "res": {}
12-10 14:58:30.650: E/Test(14826): }
12-10 14:58:30.660: E/Test(14826): [wl.jsonstore] {"src":"initCollection","err":-1,"msg":"PERSISTENT_STORE_FAILURE","col":"Notification","usr":"TestUser","doc":{},"res":{}}
尝试以下操作:
- 卸载应用程序(只是为了确保没有缓存任何内容)
- 转到application-descriptor.xml
- 删除JSONStore可选功能
- 建造
- 确保从Android环境下的
文件夹中删除native
、armeabi/libdatabase\u sqlite.so
和x86/libdatabase\u sqlcipher.so
。请参见下面的图片,位于您关心的文件下sqlcipher.jar
- 转到application-descriptor.xml
- 启用JSONStore可选功能
- 建造
- 确保
、armeabi/libdatabase\u sqlite.so
和x86/libdatabase\u sqlcipher.so
已返回。有关更多详细信息,请参阅“供参考”部分sqlcipher.jar
- 在Eclipse上刷新本机Android项目
- 在模拟器或设备上运行
ls-al
确定,MD5哈希由MD5[文件]
生成
sqlcipher.jar
Size: 103300
MD5 Hash: 8d7f4d682994158096763c24e3d79fb2
armeabi/libdatabase\u sqlite.so
Size: 365644
MD5 Hash: 07c4cf69d038c3fdcc7dd0490841ea3d
Size: 367020
MD5 Hash: 38756d70d256f8e5982ed9789705457f
x86/libdatabase\u sqlcipher.so
Size: 365644
MD5 Hash: 07c4cf69d038c3fdcc7dd0490841ea3d
Size: 367020
MD5 Hash: 38756d70d256f8e5982ed9789705457f
您关心的文件:
仍不工作?
- 使用v6.1创建新的Worklight项目(不适用于其他版本)
- 创建一个新的混合应用程序
- 创建一个Android环境
- 转到application-descriptor.xml
- 启用JSONStore
- 建造
- 确认JSONStore在那里工作李>
var collections = {
customers : {
searchFields : {
'CUSTOMERCODE' : 'string'
}
}
};
WL.JSONStore.init(collections)
.then(function () {
return WL.JSONStore.get('customers').add({'CUSTOMERCODE' : '456'});
})
.then(function () {
return WL.JSONStore.get('customers').findAll();
})
.then(function (res) {
alert(JSON.stringify(res));
})
.fail(function (err) {
alert(err.toString());
});
});
- 将
、armeabi/libdatabase\u sqlite.so
和x86/libdatabase\u sqlcipher.so
从Android v4.4中运行的新创建项目复制到现有项目中。在将本机项目发送到设备或仿真器之前,请确保生成、卸载应用程序的早期版本并刷新本机项目李>sqlcipher.jar
- 卸载应用程序(只是为了确保没有缓存任何内容)
- 转到application-descriptor.xml
- 删除JSONStore可选功能
- 建造
- 确保从Android环境下的
文件夹中删除native
、armeabi/libdatabase\u sqlite.so
和x86/libdatabase\u sqlcipher.so
。请参见下面的图片,位于您关心的文件下sqlcipher.jar
- 转到application-descriptor.xml
- 启用JSONStore可选功能
- 建造
- 确保
、armeabi/libdatabase\u sqlite.so
和x86/libdatabase\u sqlcipher.so
已返回。有关更多详细信息,请参阅“供参考”部分sqlcipher.jar
- 在Eclipse上刷新本机Android项目
- 在模拟器或设备上运行
ls-al
确定,MD5哈希由MD5[文件]
生成
sqlcipher.jar
Size: 103300
MD5 Hash: 8d7f4d682994158096763c24e3d79fb2
armeabi/libdatabase\u sqlite.so
Size: 365644
MD5 Hash: 07c4cf69d038c3fdcc7dd0490841ea3d
Size: 367020
MD5 Hash: 38756d70d256f8e5982ed9789705457f
x86/libdatabase\u sqlcipher.so
Size: 365644
MD5 Hash: 07c4cf69d038c3fdcc7dd0490841ea3d
Size: 367020
MD5 Hash: 38756d70d256f8e5982ed9789705457f
您关心的文件:
仍不工作?
- 使用v6.1创建新的Worklight项目(不适用于其他版本)
- 创建一个新的混合应用程序
- 创建一个Android环境
- 转到application-descriptor.xml
- 启用JSONStore
- 建造
- 确认JSONStore在那里工作李>
var collections = {
customers : {
searchFields : {
'CUSTOMERCODE' : 'string'
}
}
};
WL.JSONStore.init(collections)
.then(function () {
return WL.JSONStore.get('customers').add({'CUSTOMERCODE' : '456'});
})
.then(function () {
return WL.JSONStore.get('customers').findAll();
})
.then(function (res) {
alert(JSON.stringify(res));
})
.fail(function (err) {
alert(err.toString());
});
});
- 将
、armeabi/libdatabase\u sqlite.so
和x86/libdatabase\u sqlcipher.so
从Android v4.4中运行的新创建项目复制到现有项目中。在将本机项目发送到设备或仿真器之前,请确保生成、卸载应用程序的早期版本并刷新本机项目李>sqlcipher.jar
- 我正在运行一个过时版本的lib。对我来说,使用2.2.2对4.4有效。
从下载我正在运行一个过时的lib版本。对我来说,使用2.2.2对4.4有效。
下载自我刚刚尝试过这种方法,但没有成功。同样的例外也来了。我刚刚尝试过这种方法,但没有成功。同样的例外也在发生。