SQLCipher in Android N question


#1

Hi all!
I updated my nexus’s os to Android N for testing, and when i runed my app, a warning dialog was shown, like this。


I read this bloghttp://discuss.zetetic.net/t/sqlcipher-for-android-release-android-n-support/1465, so i removed dlibdatabase_sqlcipher.so, libsqlcipher_android.so, and libstlport_shared.so, using libsqlcipher.so insteadly. I also downloaded sqlcipher.jar and add it in my project。In project, codes like “System.loadlibrary(“stlport_shared”)” was replaced by “System.loadlibrary(“sqlcipher”)”. After these works, i run my app, but it was crashed. Here is crash log:

07-13 14:19:24.132 1515-1515/com.cmcc.hemuyi E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.cmcc.hemuyi, PID: 1515
java.lang.UnsatisfiedLinkError: dlopen failed: library “libstlport_shared.so” not found
at java.lang.Runtime.loadLibrary0(Runtime.java:977)
at java.lang.System.loadLibrary(System.java:1530)
at com.arcsoft.closeli.utils.SystemUtils.loadLibrary(SystemUtils.java:67)
at com.arcsoft.closeli.utils.SystemUtils.ensureLoadP2pLibs(SystemUtils.java:321)
at com.arcsoft.closeli.p2p.P2pManager.(P2pManager.java:56)
at com.arcsoft.closeli.p2p.P2pManager.enableLog(P2pManager.java:504)
at com.arcsoft.closeli.IPCamApplication.initParams(IPCamApplication.java:266)
at com.arcsoft.closeli.IPCamApplication.onCreate(IPCamApplication.java:89)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5328)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1513)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6044)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
07-13 14:39:55.420 2317-2317/com.cmcc.hemuyi:xg_service_v2 I/MultiDex: VM with version 2.1.0 has multidex support
07-13 14:39:55.420 2317-2317/com.cmcc.hemuyi:xg_service_v2 I/MultiDex: install
07-13 14:39:55.420 2317-2317/com.cmcc.hemuyi:xg_service_v2 I/MultiDex: VM has multidex support, MultiDex support library is disabled.
07-13 14:39:55.438 2317-2317/com.cmcc.hemuyi:xg_service_v2 V/LeCamLog: Set log level: 127
07-13 14:39:55.439 2317-2317/com.cmcc.hemuyi:xg_service_v2 V/StatisticUtils: set log level: true
07-13 14:39:55.452 2317-2317/com.cmcc.hemuyi:xg_service_v2 D/LECAM: JNI_OnLoad
07-13 14:39:55.456 2317-2317/com.cmcc.hemuyi:xg_service_v2 D/INSTALLATION: fade MAC: df:dd:8d:3a:67:2b
07-13 14:39:55.469 2317-2317/com.cmcc.hemuyi:xg_service_v2 D/AndroidRuntime: Shutting down VM
07-13 14:39:55.471 2317-2317/com.cmcc.hemuyi:xg_service_v2 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.cmcc.hemuyi:xg_service_v2, PID: 2317
java.lang.UnsatisfiedLinkError: dlopen failed: library “libstlport_shared.so” not found
at java.lang.Runtime.loadLibrary0(Runtime.java:977)
at java.lang.System.loadLibrary(System.java:1530)
at com.arcsoft.closeli.utils.SystemUtils.loadLibrary(SystemUtils.java:67)
at com.arcsoft.closeli.utils.SystemUtils.ensureLoadP2pLibs(SystemUtils.java:321)
at com.arcsoft.closeli.p2p.P2pManager.(P2pManager.java:56)
at com.arcsoft.closeli.p2p.P2pManager.enableLog(P2pManager.java:504)
at com.arcsoft.closeli.IPCamApplication.initParams(IPCamApplication.java:266)
at com.arcsoft.closeli.IPCamApplication.onCreate(IPCamApplication.java:89)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5328)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1513)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6044)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

The log indicate that “libstlport_shared.so” not found. My device is Google Nexus 5X. Can you tell me what I did wrong?
Thank you in advance!


#2

Hi @lqynydyxf,

It sounds as if you did not completely remove all of the old portion of the SQLCipher for Android library. You will want to remove all parts of the old library first, we have instructions on utilizing the latest version of the library here.