Эмулятор Firebase com.facebook.soloader.SoLoader $ WrongAbiError - PullRequest
0 голосов
/ 10 января 2020

Я пытаюсь протестировать базовое c Android приложение (Kotlin) с библиотекой Mapbox Android. Мои инструментальные тесты проходят на эмуляторе, работающем на моем ноутбуке для разработки. Но они терпят неудачу в тестовой лаборатории Firebase с эмуляторами. Они проходят тестовую лабораторию Firebase с физическими устройствами.

Я получаю следующее исключение для эмуляторов тестовой лаборатории Firebase Nexus5X и Pixel2:

java .lang.ExceptionInInitializerError на com.mapbox .mapboxsdk. net .ConnectivityReceiver.instance (ConnectivityReceiver. java: 43) в com.mapbox.mapboxsdk.Mapbox.getInstance (Mapbox. java: 67) в com.locuslabs.sdk.llpubli c. LLMapFragment.onCreateView (LLMapFragment.kt: 61) в androidx.fragment.app.Fragment.performCreateView (Fragment. java: 2600) в androidx.fragment.app.FragmentManagerImpl.moveToState (FragmentManagerImpl. * 10 * 8 * на 10 * * 10) * 1020 .fragment.app.FragmentManagerImpl.moveFragmentToExpectedState (FragmentManagerImpl. java: 1238) в androidx.fragment.app.FragmentManagerImpl.moveToState (FragmentManagerImpl. java: 1303) 1023 *: 439) в androidx.fragment.app.FragmentManagerImpl.executeOps (FragmentManagerImpl. java: 2079) в androidx.fragment.app .FragmentManagerImpl.executeOpsTogether (FragmentManagerImpl. java: 1869) в androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute (FragmentManagerImpl. java: 1824) 17g. Фрагмент. Framp. ) в androidx.fragment.app.FragmentManagerImpl.dispatchStateChange (FragmentManagerImpl. java: 2663) в androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated (FragmentManagerImpl. java: 6 FragmentController. java: 246) в androidx.fragment.app.FragmentActivity.onStart (FragmentActivity. java: 542) в androidx.appcompat.app.AppCompatActivity.onStart (AppCompatActivity. java: 201) в com.locuslabs. .sdktestapp.MapActivity.onStart (MapActivity.kt: 74) в android .app.Instrumentation.callActivityOnStart (Instrumentation. java: 1333) в androidx.test.runner.MonitoringInstrumentation.callActivityOnStart (MonitoringInstrumentation. java 7: ) в android .app.Activity.performStart (Activity. java: 6992) в android .app.ActivityThread.performLaunchActivity (ActivityThread. java: 2780) в android .app.ActivityThread.handleLaunchActivity (ActivityThread. java: 2892) в android .app.ActivityThread.-wrap11 (неизвестный источник: 0) в android .app.ActivityThread $ H.handleMessage (ActivityThread. java: 1593) в android .os .Handler.dispatchMessage (Обработчик. java: 105) в androidx.test.espresso.base.Interrogator.loopAndInterrogate (Interrogator. java: 148) в androidx.test.espresso.base.UiControllerImpl.loopUntil (UiControl. 1048 *: 525) в androidx.test.espresso.base.UiControllerImpl.loopUntil (UiControllerImpl. java: 484) в androidx.test.espresso.base.UiControllerImpl.injectMotionEvent (UiControllerImpl. At. test.espresso.action.MotionEvents.sendUp (MotionEvents. java: 162) в androidx.test.espresso.action.MotionEvents.sendUp (MotionEvents. java: 139) в androidx.test.espresso.action.Tap. sendSingleTap (Tap. java: 170) на androidx.test.espre sso.action.Tap.access $ 100 (нажмите. java: 31) на androidx.test.espresso.action.Tap $ 1.sendTap (нажмите. java: 47) на androidx.test.espresso.action.GeneralClickAction. execute (GeneralClickAction. java: 137) в androidx.test.espresso.contrib.RecyclerViewActions $ ActionOnItemAtPositionViewAction.perform (RecyclerViewActions. java: 306) в androidx.test.espresso.contrib.RecyclerViewActions $ ActionOnIformView (RectionlerViewActions $ ActionOnIformView. java: 228) в androidx.test.espresso.ViewInteraction $ SingleExecutionViewAction.perform (ViewInteraction. java: 366) в androidx.test.espresso.ViewInteraction.doPerform (ViewInteraction. java: 255) на androidx.test.espresso.ViewInteraction.access $ 100 (ViewInteraction. java: 65) на androidx.test.espresso.ViewInteraction $ 1.call (ViewInteraction. java: 158) на androidx.test .espresso.ViewInteraction $ 1.call (ViewInteraction. java: 155) в java .util.concurrent.FutureTask.run (FutureTask. java: 266) в android .os.Handler.handleCallback (обработчик. java: 789) в android .os.Handler.dispatchMessage (Обработчик. java: 98) в android .os.Looper.l oop (Looper. java: 164) в android .app.ActivityThread.main (ActivityThread. java: 6541) в java .lang.reflect.Method.invoke (собственный метод) в com. android .internal.os.Zygote $ MethodAndArgsCaller.run (Zygote . java: 240) at com. android .internal.os.ZygoteInit.main (ZygoteInit. java: 767) Вызывается: com.mapbox.mapboxsdk.MapStrictModeException: Карта обнаружила ошибку, которая в противном случае могла бы завершиться сбоем в противном случае : Не удалось загрузить собственную разделяемую библиотеку. - com.facebook.soloader.SoLoader $ WrongAbiError: APK был создан для другой платформы в com.mapbox.mapboxsdk.MapStrictMode.strictModeViolation (MapStrictMode. java: 34) в com.mapbox.mapboxsdk.LibraryLoader.load (LibraryLoader. java: 49) на com.mapbox.mapboxsdk. net .NativeConnectivityListener. (NativeConnectivityListener. java: 13)

Что не так с эмуляторами в лаборатории тестирования Firebase? Почему они не могут загрузить собственный код Mapbox?

1 Ответ

0 голосов
/ 16 января 2020

Трудно полностью диагностировать это по трассировке стека. Вы создаете свое приложение для целевой архитектуры x86? Используете ли вы сплит или универсальный APK?

Я думаю, что вы видите другое поведение, потому что виртуальные устройства Firebase Test Lab работают на x86, в то время как подавляющее большинство Android физических устройств имеют процессоры ARM.

«Не удалось загрузить собственную разделяемую библиотеку. - com.facebook.soloader.SoLoader $ WrongAbiError: APK был создан для другой платформы» - похоже, указывает на проблему с поиском собственного кода ARM, а не кода x86.

На этой странице обсуждается похожая ошибка: https://github.com/facebook/react-native/issues/5773

...