mapbox / mapbox/mapbox-navigation-android-examples
java.lang.UnsatisfiedLinkError cannot locate symbol referenced by "**==/base.apk!/lib/arm64-v8a/libmapbox-maps.so"
まだ誰も着手していません。
- 主要言語
- Kotlin
- スター
- 65
- フォーク
- 56
- 平均マージ
- 1日 4時間
- マージ済み PR(30日)
- 2
説明
Hi, I met java.lang.UnsatisfiedLinkError when use mapbox navigation android adk(com.mapbox.navigation:android:2.7.0) . Could anyone help to look at this issue.
Here is my log:
```
2022-09-07 15:11:08.554 24451-24451/com.microsoft.asr.gm E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.microsoft.asr.gm, PID: 24451
java.lang.RuntimeException: Unable to get provider androidx.startup.InitializationProvider: androidx.startup.StartupException: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "_ZN6mapbox6common13EventsServiceC1EONS0_20EventsServiceOptionsE" referenced by "/data/app/com.microsoft.asr.gm-j54wwzuJHGgSj6NZVHisaA==/base.apk!/lib/arm64-v8a/libmapbox-maps.so"...
at android.app.ActivityThread.installProvider(ActivityThread.java:7755)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7291)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7187)
at android.app.ActivityThread.access$2200(ActivityThread.java:296)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2208)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:213)
at android.app.ActivityThread.main(ActivityThread.java:8178)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
Caused by: androidx.startup.StartupException: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "_ZN6mapbox6common13EventsServiceC1EONS0_20EventsServiceOptionsE" referenced by "/data/app/com.microsoft.asr.gm-j54wwzuJHGgSj6NZVHisaA==/base.apk!/lib/arm64-v8a/libmapbox-maps.so"...
at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:187)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:238)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:206)
at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:45)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2121)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2094)
at android.app.ActivityThread.installProvider(ActivityThread.java:7750)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7291)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7187)
at android.app.ActivityThread.access$2200(ActivityThread.java:296)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2208)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:213)
at android.app.ActivityThread.main(ActivityThread.java:8178)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "_ZN6mapbox6common13EventsServiceC1EONS0_20EventsServiceOptionsE" referenced by "/data/app/com.microsoft.asr.gm-j54wwzuJHGgSj6NZVHisaA==/base.apk!/lib/arm64-v8a/libmapbox-maps.so"...
at java.lang.Runtime.loadLibrary0(Runtime.java:1071)
at java.lang.Runtime.loadLibrary0(Runtime.java:1007)
at java.lang.System.loadLibrary(System.java:1668)
at com.mapbox.common.loader.MapboxLibraryLoader.load(MapboxLibraryLoader.kt:19)
at com.mapbox.maps.loader.MapboxMapsInitializer.create(MapboxMapsInitializer.java:16)
at com.mapbox.maps.loader.MapboxMapsInitializer.create(MapboxMapsInitializer.java:13)
at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:180)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:238)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:206)
at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:45)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2121)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2094)
at android.app.ActivityThread.installProvider(ActivityThread.java:7750)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7291)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7187)
at android.app.ActivityThread.access$2200(ActivityThread.java:296)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2208)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:213)
at android.app.ActivityThread.main(ActivityThread.java:8178)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
2022-09-07 15:11:08.587 24451-24451/com.microsoft.asr.gm I/Process: Sending signal. PID: 24451 SIG: 9
```
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず、com.mapbox.navigation:android:2.7.0 と arm64-v8a ビルドでクラッシュを再現し、次に MapboxLibraryLoader.kt と MapboxMapsInitializer.java に示されているネイティブライブラリのロードパスを調査します。パッケージ化されたネイティブライブラリと依存関係のバージョンを比較して、EventsService シンボルが見つからない理由を特定します。アプリケーションの起動が UnsatisfiedLinkError なしで完了すれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- android, kotlin
- 領域
- mobile
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 20/100