Сбой карты Google в нескольких устройствах

Мое приложение отлично работает в Moto G (Android 5.0.2), но сбой в иске Karbon (Android 5.1.1) и нескольких других устройствах. Этот сбой связан с MapFragment. Min skd равно 17, поэтому я использую MapFragment.

AndroidManifest.xml

<permission android:name="com.dashboard.Activity.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <uses-permission android:name="com.dashboard.Activity.permission.MAPS_RECEIVE" /> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="@string/api_key" /> 

build.gradle

compile 'com.google.android.gms:play-services-maps:8.4.0'

activity_main.xml

 <fragment android:id="@+id/map" android:name="com.google.android.gms.maps.MapFragment" android:layout_width="match_parent" android:layout_height="match_parent" /> 

Activity.java

 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //App crashes here } 

————журнал ошибок———

 Unable to start activity ComponentInfo{ com.dashboard.Activity.ActivityA}: android.view.InflateException: Binary XML file line #10: Error inflating class fragment at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: android.view.InflateException: Binary XML file line #10: Error inflating class fragment at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763) at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) at android.view.LayoutInflater.inflate(LayoutInflater.java:504) at android.view.LayoutInflater.inflate(LayoutInflater.java:414) at android.view.LayoutInflater.inflate(LayoutInflater.java:365) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378) at android.app.Activity.setContentView(Activity.java:2145) at com.dashboard.Activity.ActivityA.onCreate(ActivityA.java:62) at android.app.Activity.performCreate(Activity.java:5990) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) 

    Сегодня у меня была такая же проблема, и это сводило меня с ума.

    Если вы используете findbyID(R.id.map) ; Прокомментируйте это. Фрагменты не должны быть раздуты таким образом.

    Попробуйте перебрать класс из MapFragment в SupportMapFragment

    Кроме того, класс, который обрабатывает фрагмент карты, должен расширять SupportMapFragment , вот что выглядит мое:

    public class MapFragment extends SupportMapFragment implements OnMapReadyCallback {

    Мой MapFramgment.xml

     <?xml version="1.0" encoding="utf-8"?> <fragment android:name="com.mypackage.android.Views.MapFragment" android:id="@+id/map_fragment" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" class="com.google.android.gms.maps.SupportMapFragment" xmlns:android="http://schemas.android.com/apk/res/android"> </fragment> 

    Удачи!

    Это известная проблема в Google Map, и это наблюдается, когда устройство находится в состоянии низкой памяти. Google Map пытается создать файл, который не работает в этом случае, и класс MapFragment не может быть завышен.

    Вставьте SD-карту в устройство Carbon spark (Android 5.1.1), и проблема не будет наблюдаться. Google по-прежнему работает над этой проблемой, а Fix пока недоступен.

    https://code.google.com/p/gmaps-api-issues/issues/detail?id=9021&q=NullPointerException&sort=-id&colspec=ID%20Type%20Status%20Introduced%20Fixed%20Summary%20Stars%20ApiType%20Internal

    Я думаю, что это проблема Google map api (значение учетных данных ). Проверьте консоль и удалите учетные данные или добавьте правильные учетные данные.

    Также добавьте значение ключа api в папку выпуска (проверьте папку с приложением)

    Например: api key: AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0

    Например: учетная запись: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75

    В AndroidManifest.xml

     <meta-data android:name="com.google.android.geo.API_KEY" android:value="YOUR_API_KEY"/> 

    Вам нужно получить ключ SHA1 для создания приложения карты Google. Посетите Консоль разработчика Google. Вот ссылка, чтобы вы могли найти ее https://developers.google.com/console/help/new/#installed_applications