question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

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

See original GitHub issue

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

Issue Analytics

  • State:closed
  • Created 7 years ago
  • Comments:9 (2 by maintainers)

github_iconTop GitHub Comments

1reaction
rspencer01commented, Mar 9, 2017

This appears to be due to this line. https://github.com/facebook/SoLoader/blob/master/java/com/facebook/soloader/SysUtil.java#L125. I am looking into changing it.

0reactions
passycommented, Jan 10, 2018
Read more comments on GitHub >

github_iconTop Results From Across the Web

Android ReactNative java.lang.UnsatisfiedLinkError:could find ...
The following SO answer Use 32-bit jni libraries on 64-bit ... to fix crash on Android 11 force "com.facebook.soloader:soloader:0.9.0" } }.
Read more >
SoLoader is a native code loader for Android.
Using SoLoader crashes because phone complains the lib is 32-bit. java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.
Read more >
iOS Crash Dump Analysis, Second Edition - GitHub Pages
A crash dump in a security library might point out exactly the kind of security issue, and help us correct some data structure...
Read more >
Support 64-bit architectures - Android Developers
Older versions of obfuscation SDKs that branch into random offsets of libraries built with BTI can cause apps to crash. Since the instructions...
Read more >
Phrack #59 - Magazine papers Exploit
Some reader complained about a little mistake in p59-0x01: phrack:~# head -20 ... If you are targeting Intel, then you are in luck...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found