Status Update
Comments
je...@google.com <je...@google.com>
eg...@google.com <eg...@google.com> #2
le...@google.com <le...@google.com> #3
The issue is not in the path where the devices search for the native library: the path of the library in the APK (arm64-v8a) and where it's extracted on the device (arm64) doesn't have to be the same.
Those devices seem to have a bug when it comes to reading native libraries when they're not extracted from the APK which is possible since Android M (6.0) when the native libraries are left uncompressed in the APK, which is one of the features that the Android App Bundle takes advantage of to save space on users' devices.
If app developers want to get rid of this exception, they can disable this optimization by setting the Gradle property "android.bundle.enableUncompressedNativeLibs=false", at the cost of a bigger size of their app on users' devices and also possibly a larger download size.
In the meantime, I will try to see if we have a contact at Xiaomi to look into this issue.
ja...@google.com <ja...@google.com> #4
[Deleted User] <[Deleted User]> #5
I decided to manually exclude the following models:
Huawei Y7 Prime with Android 8.1
Huawei P30 lite with Android 9
Huawei honor 8C (HWBKK-Q)
Galaxy A20 with Android 9
eg...@google.com <eg...@google.com> #6
1. If you build an App Bundle
Edit android/gradle.properties and add the flag: android.bundle.enableUncompressedNativeLibs=false
2. If you build an APK.
Ensure android/app/src/AndroidManifest.xml doesn't set `android:extractNativeLibs=false` in the `<application>` tag.
If none of the above worked, please share the application package name, so the App Bundle team can try to reproduce the bug.
xs...@google.com <xs...@google.com> #7
Edit: ummm, I can't change the title. Can someone change it to "Xiaomi devices crashes on uncompressed native library load"?
oc...@gmail.com <oc...@gmail.com> #8
ww...@gmail.com <ww...@gmail.com> #9
Hi, everyone! I'm a engineer at Xiaomi, we noticed this issue yesterday thanks to the feedback from google flutter team and I'm currently working on this issue.
Fatal Exception: java.lang.UnsatisfiedLinkError
dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.manash.purplle-1/base.apk"],nativeLibraryDirectories=[/data/app/com.manash.purplle-1/lib/arm64, /system/lib64, /vendor/lib64]]] couldn't find "libflutter.so"
io.flutter.view.FlutterMain.startInitialization
This error message was quite clear, just as google fellows saied, libflutter.so doesn't exist in /data/app/com.manash.purplle-1/lib/arm64.
And from context, I got this happened because android:extractNativeLibs="false" was set in the split apk's AndroidManifest.xml.
Normally, "/data/app/xxx-package/!lib/arm" or "/data/app/xxx-package/!lib/arm64" should be included in the classloader's lib search path, so when an app declaring android:extractNativeLibs="false" tries to load a native lib, android runtime can fallback to load the request lib from the apk if possible, i.e. the lib file in the apk was not compressed and it's correctly 4k aligned.
So the question is why "/data/app/com.manash.purplle-1/!lib/arm64" was missed?
However, I'm not able to locate the root cause just from the crash message. So, could anyone share the exact reproducing steps, thanks!
le...@google.com <le...@google.com> #10
To android:extractNativeLibs="false"
when building an APK and loading a native library?
[Deleted User] <[Deleted User]> #11
kw...@gmail.com <kw...@gmail.com> #12
go...@gmail.com <go...@gmail.com> #13
android:hardwareAccelerated="false"
le...@google.com <le...@google.com> #14
To
to...@gmail.com <to...@gmail.com> #15
le...@google.com <le...@google.com> #16
Does anyone have a Xioami device on which they can consistently reproduce the issue?
Or do you see those crashes only through crash reports?
mi...@gmail.com <mi...@gmail.com> #17
Commented on a wrong issue, my bad
tk...@gmail.com <tk...@gmail.com> #18
Android 7.1.
sa...@gmail.com <sa...@gmail.com> #19
jo...@gmail.com <jo...@gmail.com> #20
To
kr...@taxi.de <kr...@taxi.de> #21
"If you build an APK Make sure android/app/src/AndroidManifest.xml doesn’t set android:extractNativeLibs=false in the <application> tag."
in flutter docs is not clear enough. Because the android gradle documentation said, the property will be set automatically to false. You have to set it to true, to have the affect you wish.
See Android Gradle Documentation:
ko...@gmail.com <ko...@gmail.com> #23
ch...@gmail.com <ch...@gmail.com> #24
Not only on Xiaomi devices, it also happened on Samsung Galaxy J2 Core(OS-version: 8.1.0)
& LGE Nexus 5X(OS-version: 8.1.0)
Here is the crash log:
Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pecha.release/com.pecha.release.MainActivity}: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.pecha.release-DztfFbipU8Hz_EBfPn64_A==/base.apk"],nativeLibraryDirectories=[/data/app/com.pecha.release-DztfFbipU8Hz_EBfPn64_A==/lib/x86, /system/lib, /vendor/lib]]] couldn't find "libflutter.so"
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
I had used app bundle, instead on apk to upload my app on play-store and I running on latest stable flutter version:
[✓] Flutter (Channel stable, 1.20.4, on Linux, locale en_US.UTF-8)
• Flutter version 1.20.4 at /home/chinkysight/flutter
• Framework revision fba99f6cf9 (11 days ago), 2020-09-14 15:32:52 -0700
• Engine revision d1bc06f032
• Dart version 2.9.2
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
• Android SDK at /home/chinkysight/Android/Sdk
• Platform android-30, build-tools 30.0.1
• Java binary at: /snap/android-studio/91/android-studio/jre/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
• All Android licenses accepted.
[✓] Android Studio (version 4.0)
• Android Studio at /snap/android-studio/91/android-studio
• Flutter plugin version 49.0.2
• Dart plugin version 193.7547
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
[!] Connected device
! No devices available
! Doctor found issues in 1 category
le...@google.com <le...@google.com>
sa...@simformsolutions.com <sa...@simformsolutions.com> #25
I've also similar issue for xiaomi, Samsung and motorola devices.
All of the crash occurs in android 5.1 rooted device.
[Deleted User] <[Deleted User]> #26
Android 5.1.1 update mi security update miui 10 miui 12 update v7a update 5G network new update for redmi 2 prime any way
[Deleted User] <[Deleted User]> #27
Android 5.0 to 6.0 update 5G
sa...@gmail.com <sa...@gmail.com> #28
I wonder, can't this be handled by Google Play? At least for bundles, it is technically possible to have both compressed and uncompressed versions signed, and choose which to download depending on the target device (keeping a list of incompatible devices).
pe...@gmail.com <pe...@gmail.com> #29
sa...@gmail.com <sa...@gmail.com> #30
A slightly different crash on Samsung S5 Neo (with official upgrade to Android 7):
sa...@gmail.com <sa...@gmail.com> #31
This issue is closely related to
ca...@gmail.com <ca...@gmail.com> #32
sh...@gmail.com <sh...@gmail.com> #33
ie...@gmail.com <ie...@gmail.com> #34
en...@gmail.com <en...@gmail.com> #35
[Deleted User] <[Deleted User]> #36
android:extractNativeLibs=true
er...@gmail.com <er...@gmail.com> #37
Even after android.bundle.enableUncompressedNativeLibs=false
in gradle.properites, we are still seeing this crash in Crashlytics from the updated version.
en...@gmail.com <en...@gmail.com> #38
ma...@gmail.com <ma...@gmail.com> #39
bo...@justin.tv <bo...@justin.tv> #40
I added
packagingOptions.jniLibs.useLegacyPackagin = true
and I'm still seeing crashes when loading native libs, but the exception changed. Previously, it was a permission error: Welp I’m still seeing crashes, but now my exception has changed:
useLegacyPackaging=false
on a Redmi 7A
running Android 10
:
Fatal Exception: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/tv.twitch.android.app-XTre4MSL1yHSv5G86CWFqQ==/base.apk"],nativeLibraryDirectories=[/data/app/tv.twitch.android.app-XTre4MSL1yHSv5G86CWFqQ==/lib/arm, /system/lib, /system/product/lib]]] couldn't find "libtwitchsdk.so"
at java.lang.Runtime.loadLibrary0(Runtime.java:1067)
at java.lang.Runtime.loadLibrary0(Runtime.java:1007)
at java.lang.System.loadLibrary(System.java:1667)
at tv.twitch.Library$1.run(Library.java:65)
at tv.twitch.JniThreadValidator.callJniRunnable(JniThreadValidator.java:21)
at tv.twitch.Library.loadLibrary(Library.java:62)
at tv.twitch.android.sdk.SDKLibrary.loadLibrary(SDKLibrary.java:53)
at tv.twitch.Library.initialize(Library.java:85)
at tv.twitch.android.sdk.SDKServicesController.<init>(SDKServicesController.java:141)
at tv.twitch.android.sdk.SDKServicesController_Factory.newInstance(SDKServicesController_Factory.java:42)
at tv.twitch.android.sdk.SDKServicesController_Factory.get(SDKServicesController_Factory.java:31)
at tv.twitch.android.sdk.SDKServicesController_Factory.get(SDKServicesController_Factory.java:11)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at tv.twitch.android.app.core.ApplicationLifecycleController_Factory.get(ApplicationLifecycleController_Factory.java:185)
at tv.twitch.android.app.core.ApplicationLifecycleController_Factory.get(ApplicationLifecycleController_Factory.java:43)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at tv.twitch.android.app.consumer.dagger.DaggerAppComponent$AppComponentImpl.injectTwitchApplication(DaggerAppComponent.java:51752)
at tv.twitch.android.app.consumer.dagger.DaggerAppComponent$AppComponentImpl.inject(DaggerAppComponent.java:51747)
at tv.twitch.android.app.consumer.TwitchApplication.onCreate(TwitchApplication.java:122)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1190)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6582)
at android.app.ActivityThread.access$1400(ActivityThread.java:224)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1887)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7562)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
But now it's a file not found error:
useLegacyPackaging=true
on a Mi 9X
running Android 8.1.0
:
Fatal Exception: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/tv.twitch.android.app-V8h3LJXVboHHCGZtVOXQyg==/base.apk"],nativeLibraryDirectories=[/data/app/tv.twitch.android.app-V8h3LJXVboHHCGZtVOXQyg==/lib/arm64, /system/lib64, /system/vendor/lib64]]] couldn't find "libtwitchsdk.so"
at java.lang.Runtime.loadLibrary0(Runtime.java:1029)
at java.lang.System.loadLibrary(System.java:1673)
at tv.twitch.Library$1.run(Library.java:65)
at tv.twitch.JniThreadValidator.callJniRunnable(JniThreadValidator.java:21)
at tv.twitch.Library.loadLibrary(Library.java:62)
at tv.twitch.android.sdk.SDKLibrary.loadLibrary(SDKLibrary.java:53)
at tv.twitch.Library.initialize(Library.java:85)
at tv.twitch.android.sdk.SDKServicesController.<init>(SDKServicesController.java:141)
at tv.twitch.android.sdk.SDKServicesController_Factory.newInstance(SDKServicesController_Factory.java:42)
at tv.twitch.android.sdk.SDKServicesController_Factory.get(SDKServicesController_Factory.java:31)
at tv.twitch.android.sdk.SDKServicesController_Factory.get(SDKServicesController_Factory.java:11)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at tv.twitch.android.app.core.ApplicationLifecycleController_Factory.get(ApplicationLifecycleController_Factory.java:185)
at tv.twitch.android.app.core.ApplicationLifecycleController_Factory.get(ApplicationLifecycleController_Factory.java:43)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at tv.twitch.android.app.consumer.dagger.DaggerAppComponent$AppComponentImpl.injectTwitchApplication(DaggerAppComponent.java:51752)
at tv.twitch.android.app.consumer.dagger.DaggerAppComponent$AppComponentImpl.inject(DaggerAppComponent.java:51747)
at tv.twitch.android.app.consumer.TwitchApplication.onCreate(TwitchApplication.java:122)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1123)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5779)
at android.app.ActivityThread.-wrap1(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1670)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6536)
at java.lang.reflect.Method.invokeImpl(Method.java)
at java.lang.reflect.Method.invoke(Method.java:411)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:468)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:808)
tr...@gmail.com <tr...@gmail.com> #41
mu...@gmail.com <mu...@gmail.com> #42
E/FlutterLoader(13759): Flutter initialization failed.
E/FlutterLoader(13759): java.util.concurrent.ExecutionException: java.lang.UnsatisfiedLinkError: dlopen failed: library "libflutter.so" not found
E/FlutterLoader(13759): at java.util.concurrent.FutureTask.report(FutureTask.java:122)
E/FlutterLoader(13759): at java.util.concurrent.FutureTask.get(FutureTask.java:191)
E/FlutterLoader(13759): at io.flutter.embedding.engine.loader.FlutterLoader.ensureInitializationComplete(FlutterLoader.java:239)
E/FlutterLoader(13759): at io.flutter.embedding.engine.FlutterEngine.<init>(FlutterEngine.java:327)
E/FlutterLoader(13759): at io.flutter.embedding.engine.FlutterEngine.<init>(FlutterEngine.java:207)
E/FlutterLoader(13759): at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.setupFlutterEngine(FlutterActivityAndFragmentDelegate.java:272)
E/FlutterLoader(13759): at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onAttach(FlutterActivityAndFragmentDelegate.java:181)
E/FlutterLoader(13759): at io.flutter.embedding.android.FlutterActivity.onCreate(FlutterActivity.java:495)
E/FlutterLoader(13759): at android.app.Activity.performCreate(Activity.java:8547)
E/FlutterLoader(13759): at android.app.Activity.performCreate(Activity.java:8511)
E/FlutterLoader(13759): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1437)
E/FlutterLoader(13759): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3881)
E/FlutterLoader(13759): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4046)
E/FlutterLoader(13759): at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
E/FlutterLoader(13759): at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
E/FlutterLoader(13759): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
E/FlutterLoader(13759): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2440)
E/FlutterLoader(13759): at android.os.Handler.dispatchMessage(Handler.java:106)
E/FlutterLoader(13759): at android.os.Looper.loopOnce(Looper.java:211)
E/FlutterLoader(13759): at android.os.Looper.loop(Looper.java:300)
E/FlutterLoader(13759): at android.app.ActivityThread.main(ActivityThread.java:8321)
E/FlutterLoader(13759): at java.lang.reflect.Method.invoke(Native Method)
E/FlutterLoader(13759): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:581)
E/FlutterLoader(13759): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1028)
E/FlutterLoader(13759): Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: library "libflutter.so" not found
E/FlutterLoader(13759): at java.lang.Runtime.loadLibrary0(Runtime.java:1082)
E/FlutterLoader(13759): at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
E/FlutterLoader(13759): at java.lang.System.loadLibrary(System.java:1661)
E/FlutterLoader(13759): at io.flutter.embedding.engine.FlutterJNI.loadLibrary(FlutterJNI.java:141)
E/FlutterLoader(13759): at io.flutter.embedding.engine.loader.FlutterLoader$1.call(FlutterLoader.java:189)
E/FlutterLoader(13759): at io.flutter.embedding.engine.loader.FlutterLoader$1.call(FlutterLoader.java:182)
E/FlutterLoader(13759): at java.util.concurrent.FutureTask.run(FutureTask.java:264)
E/FlutterLoader(13759): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
E/FlutterLoader(13759): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
E/FlutterLoader(13759): at java.lang.Thread.run(Thread.java:1012)
E/AndroidRuntime(13759): FATAL EXCEPTION: main
E/AndroidRuntime(13759): Process:
E/AndroidRuntime(13759): java.lang.RuntimeException: Unable to start activity ComponentInfo{
E/AndroidRuntime(13759): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3900)
E/AndroidRuntime(13759): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4046)
E/AndroidRuntime(13759): at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
E/AndroidRuntime(13759): at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
E/AndroidRuntime(13759): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
E/AndroidRuntime(13759): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2440)
E/AndroidRuntime(13759): at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime(13759): at android.os.Looper.loopOnce(Looper.java:211)
E/AndroidRuntime(13759): at android.os.Looper.loop(Looper.java:300)
E/AndroidRuntime(13759): at android.app.ActivityThread.main(ActivityThread.java:8321)
E/AndroidRuntime(13759): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(13759): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:581)
E/AndroidRuntime(13759): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1028)
E/AndroidRuntime(13759): Caused by: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.UnsatisfiedLinkError: dlopen failed: library "libflutter.so" not found
E/AndroidRuntime(13759): at io.flutter.embedding.engine.loader.FlutterLoader.ensureInitializationComplete(FlutterLoader.java:345)
E/AndroidRuntime(13759): at io.flutter.embedding.engine.FlutterEngine.<init>(FlutterEngine.java:327)
E/AndroidRuntime(13759): at io.flutter.embedding.engine.FlutterEngine.<init>(FlutterEngine.java:207)
E/AndroidRuntime(13759): at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.setupFlutterEngine(FlutterActivityAndFragmentDelegate.java:272)
E/AndroidRuntime(13759): at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onAttach(FlutterActivityAndFragmentDelegate.java:181)
E/AndroidRuntime(13759): at io.flutter.embedding.android.FlutterActivity.onCreate(FlutterActivity.java:495)
E/AndroidRuntime(13759): at android.app.Activity.performCreate(Activity.java:8547)
E/AndroidRuntime(13759): at android.app.Activity.performCreate(Activity.java:8511)
E/AndroidRuntime(13759): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1437)
E/AndroidRuntime(13759): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3881)
E/AndroidRuntime(13759): ... 12 more
E/AndroidRuntime(13759): Caused by: java.util.concurrent.ExecutionException: java.lang.UnsatisfiedLinkError: dlopen failed: library "libflutter.so" not found
E/AndroidRuntime(13759): at java.util.concurrent.FutureTask.report(FutureTask.java:122)
E/AndroidRuntime(13759): at java.util.concurrent.FutureTask.get(FutureTask.java:191)
E/AndroidRuntime(13759): at io.flutter.embedding.engine.loader.FlutterLoader.ensureInitializationComplete(FlutterLoader.java:239)
E/AndroidRuntime(13759): ... 21 more
E/AndroidRuntime(13759): Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: library "libflutter.so" not found
E/AndroidRuntime(13759): at java.lang.Runtime.loadLibrary0(Runtime.java:1082)
E/AndroidRuntime(13759): at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
E/AndroidRuntime(13759): at java.lang.System.loadLibrary(System.java:1661)
E/AndroidRuntime(13759): at io.flutter.embedding.engine.FlutterJNI.loadLibrary(FlutterJNI.java:141)
E/AndroidRuntime(13759): at io.flutter.embedding.engine.loader.FlutterLoader$1.call(FlutterLoader.java:189)
E/AndroidRuntime(13759): at io.flutter.embedding.engine.loader.FlutterLoader$1.call(FlutterLoader.java:182)
E/AndroidRuntime(13759): at java.util.concurrent.FutureTask.run(FutureTask.java:264)
E/AndroidRuntime(13759): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
E/AndroidRuntime(13759): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
E/AndroidRuntime(13759): at java.lang.Thread.run(Thread.java:1012)
mu...@gmail.com <mu...@gmail.com> #43
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
Description
Internal issue:
A developer reported that uploading an App Bundle to the Play Store results in a crash because the native library that our tool placed in the APK isn't found.
The error message suggests that the device is reading the native library from /lib/arm64/** instead of /lib/arm64-v8a/**.
AAB analyzer:
Devices: Xiaomi (Redmi 5 pro, Redmi 5A, Redmi 7 pro)
OS version: Android 9 - 31%, Android 8 - 26%, Android 7 - 26%, Android 6 - 11%, Other - 6%
Package name: com.manash.purplle
Version code: 244
Error message:
```
Fatal Exception: java.lang.UnsatisfiedLinkError
dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.manash.purplle-1/base.apk"],nativeLibraryDirectories=[/data/app/com.manash.purplle-1/lib/arm64, /system/lib64, /vendor/lib64]]] couldn't find "libflutter.so"
io.flutter.view.FlutterMain.startInitialization
```
```
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.manash.purplle <<<
backtrace:
#00 pc 000000000004d320 /data/app/com.manash.purplle-1/split_config.arm64_v8a.apk
```