2016-01-03 1 views
4

Mon application fonctionne très bien dans Moto G (Android 5.0.2), mais s'écraser dans l'étincelle Karbon (Android 5.1.1) et plusieurs autres appareils. Ce crash est dû à MapFragment. Min skd a 17 ans et j'utilise MapFragment.Carte Google s'écraser dans quelques appareils

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 
} 

erreur ------------ Log ---------

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) 
+0

Pouvez-vous s'il vous plaît ajouter le reste de votre chat? –

+0

@MsYvette a ajouté mon fichier journal complet ... –

+0

Merci, je le regarde maintenant. –

Répondre

1

Il s'agit d'un problème connu de Google Map et il est observé lorsque l'appareil est en condition de mémoire insuffisante. Google Map tente de créer un fichier qui échoue dans ce cas et la classe MapFragment ne peut pas être gonflée.

Insérez une carte SD dans l'étincelle de Karbon (Android 5.1.1) et le problème ne sera pas observé. Google travaille toujours sur ce problème et Fix n'est pas encore disponible.

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

0

Je pense, c'est le problème Google map api (de lettres de créance de valeur) Veuillez vérifier la console et supprimer les informations d'identification ou ajouter les informations d'identification correctes.

S'il vous plaît ajouter api valeur clé dans dossier de presse également (S'il vous plaît vérifier par dossier app)

Par exemple: clé api: AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0

Par exemple: lettres de créance: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75

En AndroidManifest.xml

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

J'ai ajouté la clé API et son fonctionnement bien en moto, mais plusieurs autres appareils son erreur donnant –

+0

Je pense que votre version compilée est en cours d'exécution dans Moto G. S'il vous plaît ajouter la clé api dans le dossier de sortie puis build release tous. –

+0

J'ai résolu mon problème ... U peut vérifier ma réponse pour référence future –

0

Vous devez obtenir la clé SHA1 pour créer une application google map.Pour accéder à Google Developer Console, procédez comme suit: Voici le lien pour que vous puissiez vous y référer https://developers.google.com/console/help/new/#installed_applications

+0

J'ai résolu mon problème ... U peut vérifier ma réponse pour la future référence –

1

J'ai eu le même problème aujourd'hui et ça me rendait fou.

Si vous exécutez findbyID(R.id.map); commentez-le. Les fragments ne doivent pas être gonflés de cette façon.

Essayez chaning la classe de MapFragment à SupportMapFragment

En outre, la classe qui gère le fragment de carte, devrait étendre SupportMapFragment, voici ce que le mien ressemble:

public class MapFragment extends SupportMapFragment implements OnMapReadyCallback {

Mon 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> 

Bonne chance!

+0

je n'ai rien en Java sauf onCreate (Bundle savedInstanceState) { super. onCreate (savedInstanceState); setContentView (R.layout.activity_main); et min sdk est 17, donc je devrais utiliser MapFragment. mais tout ce que j'ai essayé avec SupportMapFragment mais pas de succès –

+0

J'ai résolu mon problème ... U peut vérifier ma réponse pour référence future –