Skip to content

Using SoLoader crashes because phone complains the lib is 32-bit #1

@molikto

Description

@molikto

Hello. We have a app only ships armabi-v7a binaries. And rely on other abi's legacy support. But we have this crash log:

java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:62)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:154)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)
    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)
Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/com.p1.mobile.putong/lib-main/libsqlite3x.so" is 32-bit instead of 64-bit
    at java.lang.Runtime.load(Runtime.java:332)
    at java.lang.System.load(System.java:1069)
    at com.facebook.soloader.DirectorySoSource.loadLibraryFrom(DirectorySoSource.java:71)
    at com.facebook.soloader.DirectorySoSource.loadLibrary(DirectorySoSource.java:42)
    at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:299)
    at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:247)
    at io.requery.android.database.sqlite.SQLiteDatabase.<clinit>(SQLiteDatabase.java:78)
    at com.p1.mobile.android.data.orm.DatabaseStore.db(DatabaseStore.java:111)
    at com.p1.mobile.android.data.orm.DatabaseStore.lambda$asyncFetch$52(DatabaseStore.java:334)
    at com.p1.mobile.android.data.orm.DatabaseStore.access$lambda$2(DatabaseStore.java)
    at com.p1.mobile.android.data.orm.DatabaseStore$$Lambda$3.run(DatabaseStore.java)
    at com.p1.mobile.android.app.Au.lambda$io$35(Au.java:183)
    at com.p1.mobile.android.app.Au.access$lambda$1(Au.java)
    at com.p1.mobile.android.app.Au$$Lambda$2.call(Au.java)
    at rx.Observable.unsafeSubscribe(Observable.java:8644)
    at rx.internal.operators.OperatorSubscribeOn$1.call(OperatorSubscribeOn.java:94)
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
    ... 7 more
java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/com.p1.mobile.putong/lib-main/libsqlite3x.so" is 32-bit instead of 64-bit
    at java.lang.Runtime.load(Runtime.java:332)
    at java.lang.System.load(System.java:1069)
    at com.facebook.soloader.DirectorySoSource.loadLibraryFrom(DirectorySoSource.java:71)
    at com.facebook.soloader.DirectorySoSource.loadLibrary(DirectorySoSource.java:42)
    at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:299)
    at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:247)
    at io.requery.android.database.sqlite.SQLiteDatabase.<clinit>(SQLiteDatabase.java:78)
    at com.p1.mobile.android.data.orm.DatabaseStore.db(DatabaseStore.java:111)
    at com.p1.mobile.android.data.orm.DatabaseStore.lambda$asyncFetch$52(DatabaseStore.java:334)
    at com.p1.mobile.android.data.orm.DatabaseStore.access$lambda$2(DatabaseStore.java)
    at com.p1.mobile.android.data.orm.DatabaseStore$$Lambda$3.run(DatabaseStore.java)
    at com.p1.mobile.android.app.Au.lambda$io$35(Au.java:183)
    at com.p1.mobile.android.app.Au.access$lambda$1(Au.java)
    at com.p1.mobile.android.app.Au$$Lambda$2.call(Au.java)
    at rx.Observable.unsafeSubscribe(Observable.java:8644)
    at rx.internal.operators.OperatorSubscribeOn$1.call(OperatorSubscribeOn.java:94)
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:154)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)
    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)

So using lib-main only happens if System loader failed. This error happens on a Lenovo z90-7 phone

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions