Search Unity

Getting an odd error in internal Android build after updating IAP

Discussion in 'Unity IAP' started by TEEBQNE, May 4, 2021.

Thread Status:
Not open for further replies.
  1. TEEBQNE

    TEEBQNE

    Joined:
    Jan 25, 2017
    Posts:
    88
    I am making a game for Android/iOS and recently updated my project to 2019.4.15f to allow for IAP to update versions. After pushing a new internal build, the Google Console brought this error to my attention.

    java.lang.RuntimeException: android.database.sqlite.SQLiteException: no such table: media_store_extension

    Here is the device that the error occurs on.
    Screen Shot 2021-05-04 at 3.36.21 PM.png

    The full error is
    FATAL EXCEPTION: latency_sensitive_executor-thread-0
    Process: com.google.android.apps.photos, PID: 26297
    java.lang.RuntimeException: android.database.sqlite.SQLiteException: no such table: media_store_extension (code 1): , while compiling: SELECT id FROM media_store_extension WHERE POPULATED_COLUMNS != 134217726 OR DATE_MODIFIED = -1 OR FINGERPRINT IS NULL
    at nqo.a(PG:3)
    at aleu.run(PG:6)
    at krv.a(PG:17)
    at krw.run(Unknown Source:6)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
    at java.lang.Thread.run(Thread.java:764)
    at ksa.run(PG:5)
    Caused by: android.database.sqlite.SQLiteException: no such table: media_store_extension (code 1): , while compiling: SELECT id FROM media_store_extension WHERE POPULATED_COLUMNS != 134217726 OR DATE_MODIFIED = -1 OR FINGERPRINT IS NULL
    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:890)
    at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:501)
    at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
    at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
    at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:46)
    at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1392)
    at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1239)
    at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1110)
    at agcm.a(PG:8)
    at nog.a(PG:12)
    at nqf.a(PG:5)
    at _381.a(PG:248)
    at npu.run(PG:61)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    ... 4 more
    FATAL EXCEPTION: latency_sensitive_executor-thread-1
    Process: com.google.android.apps.photos, PID: 26297
    java.lang.RuntimeException: android.database.sqlite.SQLiteException: no such table: media_store_extension (code 1): , while compiling: SELECT id FROM media_store_extension ORDER BY id DESC LIMIT 100 OFFSET 0
    at nqo.a(PG:3)
    at aleu.run(PG:6)
    at krv.a(PG:17)
    at krw.run(Unknown Source:6)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
    at java.lang.Thread.run(Thread.java:764)
    at ksa.run(PG:5)
    Caused by: android.database.sqlite.SQLiteException: no such table: media_store_extension (code 1): , while compiling: SELECT id FROM media_store_extension ORDER BY id DESC LIMIT 100 OFFSET 0
    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:890)
    at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:501)
    at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
    at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
    at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:46)
    at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1392)
    at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1239)
    at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1110)
    at agcm.a(PG:8)
    at nnw.run(PG:17)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    ... 4 more


    I have never received this error before updating the package. The other change I had made was I added the notification package, but as the SQL error was referring to media_store I assumed this was something to do with the Play Store and purchases. If needed I can provide the entire logcat that Google provided and add any other details.
     
  2. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Sorry, IAP doesn't use SQLite. Does this phone have Google Play installed? Notice the process is called com.google.android.apps.photos , are you doing any image processing or similar in your app?
     
    Last edited: May 4, 2021
  3. TEEBQNE

    TEEBQNE

    Joined:
    Jan 25, 2017
    Posts:
    88
    I believe so. In the attached screen capture, shows the prompt for authentication, then loading, then an attempt to login with a new account. It fails somewhere after this. I checked the version changes between my builds and the change between the latest stable version and this version was the addition of the Notification Package. As this only uses local notifications based on elapsed time I doubt it has anything to do with SQLite. Could this error be unrelated to my app but related to Google's account creation? Would this hurt my app's internal rating with the store recommendations if there is an error like this? If you need any more information just let me know.
     
  4. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Can you check if Google Play is installed? Launch the Play Store app on the device. If it reproduces on all devices, then yes it would hurt ratings, no one wants their game to crash. Test on another Android device to confirm. It is related to your app if that is where the exception is coming from, I don't quite understand what you mean by account creation. You need to be logged into Google Play on the device.
     
  5. TEEBQNE

    TEEBQNE

    Joined:
    Jan 25, 2017
    Posts:
    88
    Sorry, this is not occurring on any devices I or my testers have used. All of this data is from Google's pre-launch report details using Firebase Test Lab. I have not customized any unique tests so I assume it is using the default for any app. Anytime I upload a new build version the app will go through this process. I am unable to launch any apps on the device itself as I do not have access to it. I only have access to the report, the screen capture, and the logcat.

    I found 1 other thread that appears to have the same issue, https://forum.unity.com/threads/error-when-submitting-app-to-google-play.1098139/. It occurs on the same device make/model
     
  6. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Got it. It might be specific to Redmi 6A devices or similar. If this is concerning to you, you would want to obtain the specific device to test on. Otherwise I believe Google allows you to blacklist certain phone models. Based on your link, this does not look related to IAP.
     
  7. TEEBQNE

    TEEBQNE

    Joined:
    Jan 25, 2017
    Posts:
    88
    Understood thank you! Closer to release if this still occurs I will make a note and try to obtain the device.
     
  8. SmilingCatEntertainment

    SmilingCatEntertainment

    Joined:
    Jun 8, 2013
    Posts:
    91
    I am also getting this sporadically during GP's pre-launch testing. It surely has nothing to do with IAP as I have none, and frankly I don't even think it has anything to do with Unity. Looking at the stacktrace, it looks like it is getting some sort of SQLite failure while taking a testing screenshot. The failing process isn't even my process:
    FATAL EXCEPTION: latency_sensitive_executor-thread-0
    Process: com.google.android.apps.photos, PID: 29848

    I'm inclined to ignore it for now, especially since the Redmi 6A is an ARM A53 potato phone that doesn't run my games well anyway. Maybe it's performance related.
     
    TEEBQNE and JeffDUnity3D like this.
  9. kaan0550

    kaan0550

    Joined:
    Jun 2, 2019
    Posts:
    10
    I have same problem here. I discovered something that might be related;
    I always use Nox for testing my games. I opened my app when Nox was trying to update Google Play Games app. Game got a crash.
    Update finished and after I opened the game 4 times more and I kept getting crashes everytime.
    I did not change anything but 5th try was fine.
    I got crashes all the time when app trying to connect Google Play Services.
    This case might be related with our problem. I hope this helps.
     
  10. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Locking this thread as the topic does not look related to IAP.
     
Thread Status:
Not open for further replies.