Я использую Карту Google в своем приложении. Я попытался использовать MapView, а также SupportMapFragment внутри фрагмента, который содержит карту. Проблема, которая возникает, приводит к сбою Google Maps после процесса «Build APK» (во всех проверенных мной устройствах) во время инициализации карты, но при запуске из Android Studio (с Run) она работает так, как ожидалось. Это трассировки стека (все это я получаю во всех исполнениях является AssertionError):Сбой карты Google во время выполнения сборки APK
10-19 12: 17: 27,244 2256-2638/com.google.android.gms E/BaseAppContext: Пытались остановить глобальное GMSCore RequestQueue. Это, вероятно, непреднамеренно, поэтому игнорируем. 10-19 12: 17: 28.640 1921-1921/com.google.android.gms.persistent E/BluetoothAdapter: Bluetooth-связующее имеет значение 10-19 12: 17: 29.537 1921-1921/com.google.android.gms .переменный адаптер E/Bluetooth: Bluetooth-связующее имеет значение 10-19 12: 17: 29.542 2256-2677/com.google.android.gms E/MDM: [142] rpv.a: Не удалось подключиться к клиенту API Google: ConnectionResult {statusCode = API_UNAVAILABLE, разрешение = null, message = null} 10-19 12: 17: 30.112 1921-1921/com.google.android.gms.persistent E/ChimeraRcvrProxy: не удается найти приемник химеры impl class com. google.android.gms.auth.setup.devicesignals.LockScreenChimeraReceiver, удаляющий трансляцию 10-19 12: 17: 31.602 2393-2501/com.app E/Поверхность: getSlotFromBufferLocked: неизвестный буфер: 0xaa112310 10-19 12:17: 36.351 2776-2782 /? E/art: Не удалось отправить ответ отладчику: Разбитая труба 10-19 12: 17: 37.267 1269-1617 /? E/SurfaceFlinger: ro.sf.lcd_density должно быть определено как свойство построения 10-19 12: 17: 46.449 1269-1269 /? Е/EGL_emulation: TID +1269: eglCreateSyncKHR (1370): Ошибка 0x3004 (EGL_BAD_ATTRIBUTE) 10-19 12: 17: 47,050 2393-2501/com.app Е/Поверхность: getSlotFromBufferLocked: неизвестный буфер: 0xaa112700 [10-19 12 : 17: 47.094 2393: 2842 D /] HostConnection :: get() Установлено новое хост-соединение 0xb4050b90, tid 2842 10-19 12: 17: 47.222 1899-2797/com.android.inputmethod.latin E/Поверхность: getSlotFromBufferLocked : неизвестный буфер: 0xae4428c0 10-19 12: 17: 48.704 2393-2769/com .app E/UncaughtException: java.lang.AssertionError at com.google.abam $ a. (Неизвестный источник) at com.google.abam $ 19.a (Неизвестный источник) at com.google.afa (Неизвестный источник) at com.google.ababa (Неизвестный источник) at com.google.afa (Неизвестный источник) на com.google.abaia (Неизвестный источник) на com.google.abaia (Неизвестный источник) на com.google.abai $ 1. (Неизвестный источник) на ru.google .abaia (Неизвестный источник) в com.google.a.b.a.i.а (Unknown Source)
Как указано здесь, я объявляю ключи API в сборки Gradle: Google Maps Signed APK Android
пример кода, как я инициализировать карту:
public class MainMapFragment extends BaseFragment implements{...
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d(Consts.TAGS.FRAG_MAIN_MAP,"BEGIN onCreate()");
super.onCreate(savedInstanceState);
FragmentManager fm = getChildFragmentManager();
_mapFragment = (SupportMapFragment) fm.findFragmentByTag(Consts.TAGS.UTIL_MAP);
if (_mapFragment == null) {
Log.d(Consts.TAGS.FRAG_MAIN_MAP,"mapFragment is null. creating new map...");
_mapFragment = SupportMapFragment.newInstance();
fm.beginTransaction().replace(R.id.map_container, _mapFragment).commit();
_mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
Log.d(Consts.TAGS.FRAG_MAIN_MAP,"BEGIN onMapReady()");
_map = googleMap;
//_map.setInfoWindowAdapter(this);
_map.setInfoWindowAdapter(new CDInfoWindowAdapter(getActivity(),_markersPos));
_map.setOnInfoWindowClickListener(this);
_map.setPadding(120, 120, 170, 200);
MapsInitializer.initialize(getActivity());
initilizeMap();
}
}
и это макет Фрагмента:
<RelativeLayout tools:context=".MainMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/map_container"
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
<!--<fragment-->
<!--android:id="@+id/map"-->
<!--android:name="com.google.android.gms.maps.SupportMapFragment"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent"-->
<!--/>-->
<!--<com.google.android.gms.maps.MapView-->
<!--xmlns:android="http://schemas.android.com/apk/res/android"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent"-->
<!--android:id="@+id/map_view"-->
<!--/>
-->
</RelativeLayout>
Что может быть t он выдает, если код работает в режиме Run, но не в режиме «Build APK»?
Вы добавили ключ карты google в манифест? –
Каков ваш целевой API? можете ли вы показать нам initializeMap? – user1506104