Android Question New version of SQLiteCipher?

Erel

B4X founder
Staff member
Licensed User
There is a new version of SQLiteCipher, based on SQLite 3.34.1
Currently I have SQLiteCipher, based on SQLite version 3.25.2
It is likely that you will not see any difference between the two versions.

I haven't tried the wrapper with v4.4.3. You can try it by renaming the dependency in the xml file (near the bottom).
 
Upvote 0

RB Smissaert

Well-Known Member
Licensed User
It will have the Iif function, which is a bit easier to use than using Case When etc.
Are you saying there is no need to download any new files?

RBS
 
Upvote 0

RB Smissaert

Well-Known Member
Licensed User
It is likely that you will not see any difference between the two versions.

I haven't tried the wrapper with v4.4.3. You can try it by renaming the dependency in the xml file (near the bottom).

I finally found the new aar file:
net.zetetic : android-database-sqlcipher : 4.4.3 - Maven Central Repository Search
It is under the download button to the right.
I added this file to the additional libraries folder and edited the file SQLCipher.xml to refer to the new aar file:
<dependsOn>android-database-sqlcipher-4.4.3.aar</dependsOn>

I can compile, but can't connect to SQLite with error:

clsconnection_class_globals (java line: 90)
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/sqlite/db/SupportSQLiteDatabase;
at b4a.sqlitelight1.clsconnection._class_globals(clsconnection.java:90)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:213)
at b4a.sqlitelight1.clsconnection.innerInitialize(clsconnection.java:23)
at b4a.sqlitelight1.clsconnection._initialize(clsconnection.java:670)
at b4a.sqlitelight1.main._getkvssettings(main.java:31291)
at b4a.sqlitelight1.main$ResumableSub_Activity_Create.resume(main.java:2279)
at b4a.sqlitelight1.main._activity_create(main.java:2218)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:213)
at b4a.sqlitelight1.main.afterFirstLayout(main.java:112)
at b4a.sqlitelight1.main.access$000(main.java:24)
at b4a.sqlitelight1.main$WaitForLayout.run(main.java:90)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:246)
at android.app.ActivityThread.main(ActivityThread.java:8425)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:596)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
Caused by: java.lang.ClassNotFoundException: androidx.sqlite.db.SupportSQLiteDatabase
... 20 more

I still have the old file SQLCipher.jar and can't find a newer file of this.

Any solution to this?

RBS
 
Upvote 0

RB Smissaert

Well-Known Member
Licensed User
Search for sqlite in B4A Sdk Manager and install the three components.

Add:
B4X:
#AdditionalJar: androidx.sqlite:sqlite-framework
#AdditionalJar: androidx.sqlite:sqlite

I haven't tried it myself. It is possible that you will need to wait for me to update the wrapper.

Have done so, but can't compile:

B4A Version: 10.70
Parsing code. (1.72s)
Java Version: 8
Building folders structure. (0.08s)
Compiling code. (1.36s)
Compiling layouts code. (0.09s)
Organizing libraries. Error
Maven artifact not found: androidx.sqlite/sqlite-framework

RBS
 
Upvote 0

RB Smissaert

Well-Known Member
Licensed User
Install it. It should be listed.

According to the SDK manager they are installed:

androidx.sqlite:sqlite-framework (Google Maven)
androidx.sqlite:sqlite (Google Maven)
androidx.sqlite:sqlite-ktx (Google Maven)

Do I put this:

#AdditionalJar: androidx.sqlite:sqlite-framework
#AdditionalJar: androidx.sqlite:sqlite

At the top of Main?

I have trouble returning to my old state of the project.

RBS
 
Upvote 0
Top