java.io.FileNotFoundException: icudt53l.zip

I don’t know why, but some times app crashes due to above file not found.
Here are the crash logs

01-18 17:43:37.480 21303-21303/com.diro E/Database: Cannot load ICU database file
java.io.FileNotFoundException: icudt53l.zip
at android.content.res.AssetManager.openAsset(Native Method)
at android.content.res.AssetManager.open(AssetManager.java:313)
at android.content.res.AssetManager.open(AssetManager.java:287)
at com.couchbase.lite.util.ICUUtils.loadICUData(ICUUtils.java:51)
at com.couchbase.lite.util.ICUUtils.getICUDatabasePath(ICUUtils.java:34)
at com.couchbase.lite.android.AndroidSQLiteStorageEngine.getICUDatabasePath(AndroidSQLiteStorageEngine.java:48)
at com.couchbase.lite.storage.SQLiteStorageEngineBase$ConnectionListener.onOpen(SQLiteStorageEngineBase.java:99)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:198)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:178)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:461)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:191)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:183)
at com.couchbase.lite.internal.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:820)
at com.couchbase.lite.internal.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:803)
at com.couchbase.lite.internal.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:698)
at com.couchbase.lite.storage.SQLiteStorageEngineBase.open(SQLiteStorageEngineBase.java:70)
at com.couchbase.lite.store.SQLiteStore.open(SQLiteStore.java:188)
at com.couchbase.lite.Database.open(Database.java:1251)
at com.couchbase.lite.Manager.openDatabase(Manager.java:335)
at com.couchbase.lite.Manager.getDatabase(Manager.java:299)
at com.diro.utils.CblMethods.getDatabase(CblMethods.java:104)
at com.diro.cbl_manager.SingltonDbClass.getInstance(SingltonDbClass.java:31)
at com.diro.diroshake.myapplication.CBL.initDatabase(CBL.java:76)
at com.diro.diroshake.myapplication.CBL.onCreate(CBL.java:138)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1013)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4707)
at android.app.ActivityThread.-wrap1(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
at android.os.Handler.dispatchMessage(Handler.java:102)
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)
01-18 17:43:37.511 21303-21303/com.diro E/Database: Cannot load ICU database file
java.io.FileNotFoundException: icudt53l.zip
at android.content.res.AssetManager.openAsset(Native Method)
at android.content.res.AssetManager.open(AssetManager.java:313)
at android.content.res.AssetManager.open(AssetManager.java:287)
at com.couchbase.lite.util.ICUUtils.loadICUData(ICUUtils.java:51)
at com.couchbase.lite.util.ICUUtils.getICUDatabasePath(ICUUtils.java:34)
at com.couchbase.lite.android.AndroidSQLiteStorageEngine.getICUDatabasePath(AndroidSQLiteStorageEngine.java:48)
at com.couchbase.lite.storage.SQLiteStorageEngineBase$ConnectionListener.onOpen(SQLiteStorageEngineBase.java:99)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:198)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:178)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:461)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnectionPool.tryAcquireNonPrimaryConnectionLocked(SQLiteConnectionPool.java:885)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnectionPool.waitForConnection(SQLiteConnectionPool.java:607)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnectionPool.acquireConnection(SQLiteConnectionPool.java:346)
at com.couchbase.lite.internal.database.sqlite.SQLiteSession.acquireConnection(SQLiteSession.java:849)
at com.couchbase.lite.internal.database.sqlite.SQLiteSession.executeForChangedRowCount(SQLiteSession.java:723)
at com.couchbase.lite.internal.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:67)
at com.couchbase.lite.internal.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1660)
at com.couchbase.lite.internal.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1589)
at com.couchbase.lite.storage.SQLiteStorageEngineBase.execSQL(SQLiteStorageEngineBase.java:166)
at com.couchbase.lite.store.SQLiteStore.runStatements(SQLiteStore.java:2556)
at com.couchbase.lite.store.SQLiteStore.initialize(SQLiteStore.java:2566)
at com.couchbase.lite.store.SQLiteStore.open(SQLiteStore.java:210)
at com.couchbase.lite.Database.open(Database.java:1251)
at com.couchbase.lite.Manager.openDatabase(Manager.java:335)
at com.couchbase.lite.Manager.getDatabase(Manager.java:299)
at com.diro.utils.CblMethods.getDatabase(CblMethods.java:104)
at com.diro.cbl_manager.SingltonDbClass.getInstance(SingltonDbClass.java:31)
at com.diro.diroshake.myapplication.CBL.initDatabase(CBL.java:76)
at com.diro.diroshake.myapplication.CBL.onCreate(CBL.java:138)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1013)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4707)
at android.app.ActivityThread.-wrap1(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
at android.os.Handler.dispatchMessage(Handler.java:102)
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)
01-18 17:43:37.740 21303-21348/com.diro E/Database: Cannot load ICU database file
java.io.FileNotFoundException: icudt53l.zip
at android.content.res.AssetManager.openAsset(Native Method)
at android.content.res.AssetManager.open(AssetManager.java:313)
at android.content.res.AssetManager.open(AssetManager.java:287)
at com.couchbase.lite.util.ICUUtils.loadICUData(ICUUtils.java:51)
at com.couchbase.lite.util.ICUUtils.getICUDatabasePath(ICUUtils.java:34)
at com.couchbase.lite.android.AndroidSQLiteStorageEngine.getICUDatabasePath(AndroidSQLiteStorageEngine.java:48)
at com.couchbase.lite.storage.SQLiteStorageEngineBase$ConnectionListener.onOpen(SQLiteStorageEngineBase.java:99)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:198)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:178)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:461)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:191)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:183)
at com.couchbase.lite.internal.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:820)
at com.couchbase.lite.internal.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:803)
at com.couchbase.lite.internal.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:698)
at com.couchbase.lite.storage.SQLiteStorageEngineBase.open(SQLiteStorageEngineBase.java:70)
at com.couchbase.lite.store.SQLiteStore.open(SQLiteStore.java:188)
at com.couchbase.lite.Database.open(Database.java:1251)
at com.couchbase.lite.Manager.openDatabase(Manager.java:335)
at com.couchbase.lite.Manager.getDatabase(Manager.java:299)
at com.diro.utils.CblMethods.getMediaDatabase(CblMethods.java:134)
at com.diro.cbl_manager.SingltonDbClass.getMediaInstance(SingltonDbClass.java:43)
at com.diro.activites.SplashActivity.pullDxImageDocuments(SplashActivity.java:152)
at com.diro.activites.SplashActivity.access$000(SplashActivity.java:58)
at com.diro.activites.SplashActivity$1.run(SplashActivity.java:73)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
01-18 17:43:37.804 21303-21335/com.diro E/ActivityThread: Failed to find provider info for com.facebook.katana.provider.AttributionIdProvider
01-18 17:43:37.866 21303-21348/com.diro E/Database: Cannot load ICU database file
java.io.FileNotFoundException: icudt53l.zip
at android.content.res.AssetManager.openAsset(Native Method)
at android.content.res.AssetManager.open(AssetManager.java:313)
at android.content.res.AssetManager.open(AssetManager.java:287)
at com.couchbase.lite.util.ICUUtils.loadICUData(ICUUtils.java:51)
at com.couchbase.lite.util.ICUUtils.getICUDatabasePath(ICUUtils.java:34)
at com.couchbase.lite.android.AndroidSQLiteStorageEngine.getICUDatabasePath(AndroidSQLiteStorageEngine.java:48)
at com.couchbase.lite.storage.SQLiteStorageEngineBase$ConnectionListener.onOpen(SQLiteStorageEngineBase.java:99)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:198)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:178)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:461)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnectionPool.tryAcquireNonPrimaryConnectionLocked(SQLiteConnectionPool.java:885)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnectionPool.waitForConnection(SQLiteConnectionPool.java:607)
at com.couchbase.lite.internal.database.sqlite.SQLiteConnectionPool.acquireConnection(SQLiteConnectionPool.java:346)
at com.couchbase.lite.internal.database.sqlite.SQLiteSession.acquireConnection(SQLiteSession.java:849)
at com.couchbase.lite.internal.database.sqlite.SQLiteSession.executeForChangedRowCount(SQLiteSession.java:723)
at com.couchbase.lite.internal.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:67)
at com.couchbase.lite.internal.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1660)
at com.couchbase.lite.internal.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1589)
at com.couchbase.lite.storage.SQLiteStorageEngineBase.execSQL(SQLiteStorageEngineBase.java:166)
at com.couchbase.lite.store.SQLiteStore.runStatements(SQLiteStore.java:2556)
at com.couchbase.lite.store.SQLiteStore.initialize(SQLiteStore.java:2566)
at com.couchbase.lite.store.SQLiteStore.open(SQLiteStore.java:210)
at com.couchbase.lite.Database.open(Database.java:1251)
at com.couchbase.lite.Manager.openDatabase(Manager.java:335)
at com.couchbase.lite.Manager.getDatabase(Manager.java:299)
at com.diro.utils.CblMethods.getMediaDatabase(CblMethods.java:134)
at com.diro.cbl_manager.SingltonDbClass.getMediaInstance(SingltonDbClass.java:43)
at com.diro.activites.SplashActivity.pullDxImageDocuments(SplashActivity.java:152)
at com.diro.activites.SplashActivity.access$000(SplashActivity.java:58)
at com.diro.activites.SplashActivity$1.run(SplashActivity.java:73)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)

@neeraj.kumar
Thank you for reporting the issue.
icudt53l.zip file is bundled in couchbase-lite-android.aar file. So the loading the file should not be failed. Do you observe FileNotFound exception with specific hardware or Android version? Could you please provide further information to identify the problem?
Thanks!

We are having three database in our app.
we call addChangeListener() to db1 runs successfully.
we call addChangeListener() to db2 crashes with above exception.

@neeraj.kumar

Could you please file the ticket? https://github.com/couchbase/couchbase-lite-java-core/issues

Also, can you create simple sample app that can reproduce this issue?

Thanks!