forcedotcom / SalesforceMobileSDK-Android

Android SDK for Salesforce
Other
341 stars 386 forks source link

Smart Store Crashing on Creation on Some Devices #2597

Open Genteel01 opened 1 month ago

Genteel01 commented 1 month ago

We have an app that crashes when setting up Smart Store on some devices. It's not happening on any of our devices, so I don't have a full error log from Android Studio, but I've included error data from Sentry. The majority of devices don't have any problems, but there are devices from 3 manufacturers across 3 Android versions having the error. It crashes every time on these devices.

I've worked out that the error happens when Smart Store is set up. It happens both when the store is defined in a userstore.json file and created using setupUserStoreFromDefaultConfig(), and when the store is created in code using smartStore.registerSoup.

  1. Version of Mobile SDK Used: 11.1.0 and 12.0.1
  2. Issue found in Native App or Hybrid App: Native
  3. OS Version: Android 12, 13, and 14
  4. Device: SM-G988B, Pixel 7 Pro, Moto G Pure, SM-A546E
  5. Steps to reproduce:
    • Install the app on an affected device
    • Log in to the Salesforce login screen
    • App crashes
  6. Actual behavior: App Crashes
  7. Expected Behavior: App doesn't crash
  8. Error Log: (Don't have full error log, taken from Sentry)
RuntimeException
Unable to resume activity {au.com.maxmskate.mobile/au.com.maxmskate.mobile.MainActivity}: android.database.sqlite.SQLiteException: file is not a database: , while compiling: select count(*) from sqlite_master;

SQLiteException
file is not a database: , while compiling: select count(*) from sqlite_master;

Crashed in non-app: net.sqlcipher.database.SQLiteCompiledSql in native_compile

net.sqlcipher.database.SQLiteCompiledSql in compile at line 15
net.sqlcipher.database.SQLiteCompiledSql in <init> at line 30
net.sqlcipher.database.SQLiteProgram in <init> at line 105
net.sqlcipher.database.SQLiteQuery in <init> at line 1
net.sqlcipher.database.SQLiteDirectCursorDriver in query at line 9
net.sqlcipher.database.SQLiteDatabase in rawQueryWithFactory at line 36
net.sqlcipher.database.SQLiteDatabase in rawQuery at line 1
net.sqlcipher.database.SQLiteDatabase in keyDatabase at line 30
net.sqlcipher.database.SQLiteDatabase in openDatabaseInternal at line 4
net.sqlcipher.database.SQLiteDatabase in openDatabase at line 10
net.sqlcipher.database.SQLiteDatabase in openOrCreateDatabase at line 8
net.sqlcipher.database.SQLiteOpenHelper in getWritableDatabase at line 14
net.sqlcipher.database.SQLiteOpenHelper in getWritableDatabase at line 2
net.sqlcipher.database.SQLiteOpenHelper in getWritableDatabase at line 1
a6.t in i at line 8
a6.t in u at line 2
au.com.maxmskate.mobile.drivers.android.activities.LoginActivity in onResume at line 298
Called from: android.app.Instrumentation in callActivityOnResume
android.app.Activity in performResume at line 8374
android.app.ActivityThread in performResumeActivity at line 4901
android.app.ActivityThread in handleResumeActivity at line 4944
android.app.servertransaction.ResumeActivityItem in execute at line 54
android.app.servertransaction.ActivityTransactionItem in execute at line 45
android.app.servertransaction.TransactionExecutor in executeLifecycleState at line 176
android.app.servertransaction.TransactionExecutor in execute at line 97
android.app.ActivityThread$H in handleMessage at line 2312
android.os.Handler in dispatchMessage at line 111
android.os.Looper in loopOnce at line 238
android.os.Looper in loop at line 357
android.app.ActivityThread in main at line 8103
java.lang.reflect.Method in invoke
com.android.internal.os.RuntimeInit$MethodAndArgsCaller in run at line 548
com.android.internal.os.ZygoteInit in main at line 1026
riquier commented 1 month ago

We are experiencing the same issue too, again, which is forcing our company to consider if Salesforce is a stable platform to continue using for app development, are you able to explain how these keeps happening?

wmathurin commented 3 weeks ago

We just released version 12.1.0 of Mobile SDK which uses the most recent SQLCipher (4.6.0). Could you try it and let us know if the issue still occurs?

Genteel01 commented 3 weeks ago

Unfortunately it didn't solve the problem.