Получение java.lang.NoSuchFieldError с API Amazon Maps V2 - PullRequest
0 голосов
/ 17 ноября 2018

Я опубликовал это на форуме разработчиков Amazon, но подумал, что тоже постараюсь посмотреть, есть ли у кого-нибудь идеи.По крайней мере, проблема supported_abis может быть немного объяснена?В более новых API карт v2 больше нет этого поля?Регистрация отладки и выпуска карт завершена с использованием имеющихся у меня хранилищ ключей отладки и выпуска.Как показано в logcat, карты v2 загружаются (конечно, до ошибки).

compileSdkVersion 28
minSdkVersion 19
targetSdkVersion 28
multiDexEnabled true
buildToolsVersion '28.0.3'

Я пытаюсь перенести существующее приложение Android в Fire OS и не могу загрузить карты v2 для загрузки.

Использование этого:

<fragment
   android:id="@+id/mission_map"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   class="com.amazon.geo.mapsv2.MapFragment" />
   setContentView(R.layout.mission_map_layout);

Я продолжаю получать эту ошибку в журналах:

Причина: java.lang.NoSuchFieldError: android.os.Build.SUPPORTED_ABIS

E /AndroidRuntime (10981): на com.amazon.geo.mapsv2.pvt.RemoteContextUtils.loadModule (RemoteContextUtils.java:152)

E / AndroidRuntime (10981): на com.amazon.geo.mapsv2.util.AmazonMapsRuntimeUtil.loadEngineContext (AmazonMapsRuntimeUtil.java:215)

E / AndroidRuntime (10981): по адресу com.amazon.geo.mapsv2.util.AmazonMapsRuntimeUtil.access $ 100 (AmazonMapsRuntimeUtil.java: 10: 10 * 10: 50)* E / AndroidRuntime (10981): в com.amazon.geo.mapsv2.util.AmazonMapsRuntimeUtil $ DefaultEngineLoader.createInstance (AmazonMapsRuntimeUtil.java:613)

E / AndroidRuntime (10981): в com.ama.o.mapsv2.util.AmazonMapsRuntimeUtil $ DefaultEngineLoader.createInstance (AmazonMapsRuntimeUtil.java:608)

E / AndroidRuntime (10981): на com.amazon.geo.mapsv2.pvt.LazyInitializer.get (LazyInitializer.java:41)

E / AndroidRuntime (10981): в com.amazon.geo.mapsv2.util.AmazonMapsRuntimeUtil.getRemoteContext (AmazonMapsRuntimeUtil.java:325)

E / AndroidRuntime (10981): в com.amazon.geo.mapsv2.MapsInitializer.inMapsInitializer.java:54)

E / AndroidRuntime (10981): на com.amazon.geo.mapsv2.MapFragment $ InitializerTask.doInBackground (MapFragment.java:302)

E / AndroidRuntime (10981): на com.amazon.geo.mapsv2.MapFragment $ InitializerTask.doInBackground (MapFragment.java:299)

E / AndroidRuntime (10981): на android.os.AsyncTask $ 2.call (AsyncTask.java: 288)

Я пытаюсь запустить его на планшете Fire с Fire OS 4.5.5.3.Это просто слишком стар, чтобы запустить его?Приложение было построено с использованием новейших Android SDK (28) и файлов Gradle, и было бы трудно откатиться до старого набора.

Другие действия и фрагменты загружаются очень хорошо во всем приложении, за исключением карт v2.

Я добавил его, используя локальный репозиторий Maven.

Это правда:

return AmazonMapsRuntimeUtil.<em>isAmazonMapsRuntimeAvailable</em>(context) == com.amazon.geo.mapsv2.util.ConnectionResult.SUCCESS;

Я не нахожу много на supported_abis, по крайней мере, как это применимона карты Amazon, кроме того, что это спецификация процессора.Этот планшет слишком стар для загрузки?Это все, что я должен проверить.Почему он загружает другие действия и просто не может загрузить этот фрагмент amazon maps v2?Не пытается загрузить службы определения местоположения или что-нибудь.Фрагмент обернут в простой относительный макет.

Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 17 ноября 2018

Поле SUPPORTED_ABIS является частью класса Android Build . Это было введено в API 21.

Ваша проблема в том, что на Kindle не работает API 21. Последняя версия Fire OS для Kindle Fire HDX 2013: 4.5.5.3 , что на основе API 19 / KitKat .

Извините, но если вы хотите проверить это в Fire OS, вам нужно получить устройство Kindle, работающее по крайней мере с Fire OS 5, и ваше приложение не будет работать ни на чем ниже этого. У Amazon есть инструкции по настройке эмулятора Kindle (вроде), но на самом деле это просто аппаратный профиль Kindle с обычным Android. Но этого должно быть достаточно, чтобы увидеть, как приложение будет работать в Fire OS.

...