2.0.3 upgrade causes app to crash on startup

Hi all,

I updated to 2.0.3 earlier today, from 2.0.2. AntennaPod now crashes on startup. No crash log is generated in Android/data/de.danoeh.antennapod/files, but I do get a notification at the bottom of the screen:

unknown error (code 14
SQLITE_CANTOPEN) could not open 
database

I have tried to clear cache and storage in Settings -> Apps, and also manually removed the
Android/data/de.danoeh.antennapod folder, I’ve also tried uninstalling/re-installing, I have made sure that the ‘Storage’ app permission is granted, and have rebooted.

Is there some other configuration file that can be deleted? Seems that AntennaPod thinks there is a profile to open at startup.

I did just now use AppCloner to clone the 2.0.2 version apk to a new name, and have been able to install that and get it running, which still leads me to believe there is some ‘left over’ bits scattered about that are not cleared when storage and cache are cleared.

Device details:
Motorola G7 Power
Android 10
32g device memory
256g SD card as ‘internal app storage’

Not sure if the SD card formatting is an issue - I have plenty of other apps on the SD card, and previous versions of AntennaPod, since 1.7.x)

Thanks!
-Tom

Hi! That’s an interesting bug. There is pretty much no difference between 2.0.2 and 2.0.3. Only some translations and bug fixes but nothing related to the database. I am also confused by the fact that re-installing the app does not help. A re-install removes all application data - there is no other location that AntennaPod writes to.

Did you get AntennaPod from Google Play or from F-Droid?

Installed from Google Play Store.

Perhaps the Sqlite bug is being thrown from some other part of Android? I have gotten a ‘crash-log.txt’ (or whatever name) in the Android/data/de.danoeh.antennapod folder folder before, but not on this bug. Do you happen to know of a system log viewer app?

My phone is not rooted, very stock.

Ok, I got an adb logcat from trying to open AntennaPod. Seems that I’m getting a permission denied on mkdir for de.danoeh.antennapod/databases. I have made sure that ‘Storage’ permission is granted in Settings -> Apps -> AntennaPod.

This seems to be a different directory from Android/data/de.danoeh.antennapod ?

Interesting that my cloned version runs just fine, so my guess is that something got left in a bad state, probably unique to my device. Here’s the log:

11-18 17:04:07.311  2079  2118 I WindowManager:   SURFACE show Surface(name=Splash Screen de.danoeh.antennapod)/@0xf5901ed on display:0: Splash Screen de.danoeh.antennapod
11-18 17:04:07.380 12747 29309 W ContextImpl: Failed to ensure /mnt/expand/27d73a5c-340f-4c05-b923-04151ece3efd/user/0/de.danoeh.antennapod/databases: mkdir failed: EACCES (Permission denied)
11-18 17:04:07.380 12747 29309 E SQLiteLog: (14) cannot open file at line 36956 of [68b898381a]
11-18 17:04:07.380 12747 29309 E SQLiteLog: (14) os_unix.c:36956: (13) lstat(/mnt/expand/27d73a5c-340f-4c05-b923-04151ece3efd/user/0/de.danoeh.antennapod/databases/Antennapod.db) -
11-18 17:04:07.387 12747 29309 E SQLiteDatabase: Failed to open database '/mnt/expand/27d73a5c-340f-4c05-b923-04151ece3efd/user/0/de.danoeh.antennapod/databases/Antennapod.db'.
11-18 17:04:07.387 12747 29309 E SQLiteDatabase: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14 SQLITE_CANTOPEN): Could not open database
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:215)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:197)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:505)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:206)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:198)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:915)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:895)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:759)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:748)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:374)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:317)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at de.danoeh.antennapod.core.storage.PodDBAdapter.openDb(SourceFile:347)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at de.danoeh.antennapod.core.storage.PodDBAdapter.open(SourceFile:338)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at de.danoeh.antennapod.activity.SplashActivity.lambda$onCreate$0(SourceFile:41)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at de.danoeh.antennapod.activity.-$$Lambda$SplashActivity$4cCte6ENkBZApVMn4A_M2Taf_7I.subscribe(Unknown Source:0)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at io.reactivex.internal.operators.completable.CompletableCreate.subscribeActual(SourceFile:39)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at io.reactivex.Completable.subscribe(SourceFile:2302)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(SourceFile:64)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at io.reactivex.Scheduler$DisposeTask.run(SourceFile:578)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at io.reactivex.internal.schedulers.ScheduledRunnable.run(SourceFile:66)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at io.reactivex.internal.schedulers.ScheduledRunnable.call(SourceFile:57)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
11-18 17:04:07.387 12747 29309 E SQLiteDatabase:        at java.lang.Thread.run(Thread.java:919)

Thanks! The logs are great. I have never seen this kind of crash. Looks like your system installs AntennaPod on the external sd card. Does your system have a setting that can choose between internal and external storage for apps? (Not AntennaPod’s data folder setting - something for the whole app)

Right, I mentioned that in my first post. I have an micro SD card installed, and formatted it as ‘system storage’, so apps can be installed there. I’ve had this arrangement since I purchased this phone, and AntennaPod has worked before.

I just now tried moving AntennaPod to Internal storage, and that operation failed, I was able to move my cloned version to Internal storage without error. So it seems something is definitely flakey with the filesystem, but just for AntennaPod.

I guess my option is to continue to use my cloned version, or move apps back to internal storage and reformat as ‘portable’ storage. I’ll do some experimentation.

Thanks!

Update - moved off all other apps on my SD card to internal, backed up data, and re-formatted as ‘portable storage’. AntennaPod installed just fine, and it looks like I can use the external card for podcast content.

Some part of the previous file system was obviously corrupt, and more importantly was not AntennaPod’s issue, but rather something going on at the Android system level. Several years ago, I would have rooted my device, and poked around until I found the issue. These days, I just want stuff to work :slight_smile:

Thanks again for looking into this, and thanks for AntennaPod.

Best,
Tom

1 Like

That’s nice to hear - thanks!