My application was running smoothly in previous versions of Android , but after receiving messages from users who have upgraded to Android 6 and I take the test in the emulator that android version of the log returned in B4A is shown below :
B4X:
main_activity_create (B4A line: 517)
SQL1.Initialize(File.DirInternal, "config_geral
java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "EVP_CipherFinal" referenced by "/data/app/com.infranote-1/lib/arm/libsqlcipher_android.so"...
at java.lang.Runtime.loadLibrary(Runtime.java:372)
at java.lang.System.loadLibrary(System.java:1076)
at net.sqlcipher.database.SQLiteDatabase.loadLibs(SQLiteDatabase.java:143)
at net.sqlcipher.database.SQLiteDatabase.loadLibs(SQLiteDatabase.java:137)
at anyhwheresoftware.b4a.objects.sqlcipher.SQLCipher.Initialize(SQLCipher.java:50)
at com.infranote.main._activity_create(main.java:906)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:187)
at com.infranote.main.afterFirstLayout(main.java:102)
at com.infranote.main.access$000(main.java:17)
at com.infranote.main$WaitForLayout.run(main.java:80)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
My B4A IDE is v5.20 and SQLCipher library is v 1.20.
Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
'Activity.LoadLayout("Layout1")
Log("First Line OK")
SQL2.Initialize(File.DirInternal,"Test.db",True,"1234","")
Log("Second line OK")
SQL2.ExecNonQuery("CREATE TABLE IF NOT EXISTS test (test123 TEXT null)")
Log("Create database OK")
SQL2.Close
Log("Works!!!")
End Sub
I have the same problem with my APP running on Android 6 device(no problem with all other android). But I am not using SQLCipher library only with SQL V1.20.
Do I have to switch to SQLCipher as my main SQL program to solve this android 6 error?