6

io non sono in grado di mostrare la mappa di Google su Android M.binario linea di file XML #: Errore classe gonfiaggio frammento: Solo su Android (6.0) -Marshmallow

Ecco il layout xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:wheel="http://schemas.android.com/apk/res-auto" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<include 
    layout="@layout/toolbar_layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"/> 

<LinearLayout 
    android:orientation="vertical" 
    android:id="@+id/content_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <fragment 
     class="com.google.android.gms.maps.SupportMapFragment" 
     android:id="@+id/googleMap" 
     android:layout_weight="1" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_gravity="center" 

     /> 
     </LinearLayout> 

</LinearLayout> 

AndroidManifest File:

<permission 
    android:name="com.xxx.yyy.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature" /> 
<uses-permission android:name="com.xxx.yyy.permission.MAPS_RECEIVE" /> 
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 

E tag applicazione interna:

<meta-data 
     android:name="com.google.android.maps.v2.API_KEY" 
     android:value="@string/maps_api_key" /> 

    <meta-data 
     android:name="com.google.android.gms.version" 
     android:value="@integer/google_play_services_version" /> 

sto richiedente per le autorizzazioni in fase di esecuzione:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && (checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED || checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED)) 
      { 
       requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION}, PERMISSION_REQUEST_COARSE_LOCATION); 
      } 

e questo è il callback:

@Override 
public void onRequestPermissionsResult(int requestCode,String permissions[], int[] grantResults) { 
    switch (requestCode) { 
     case PERMISSION_REQUEST_COARSE_LOCATION: { 
      if (grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED) { 
       //Access Location 
      } else { 
       Utils.showToast(getApplicationContext(), "Until you grant the permissions, You cannot Access Location Service"); 
      } 

     } 
     break; 
    } 
} 

Sono ottenere questa eccezione

"android.view.InflateException: Binary XML file line #: Error inflating class fragment" only on Android 6.

Sta mostrando mappa senza alcun problema sul resto delle versioni di Android. Mi aiuti per favore.

+0

estendi FragmentActivity? – Sandy

+0

Sto estendendo una BaseActivity che è una sottoclasse di AppcompactActivity – Anu

+0

estende FragmentActivity e ricontrolla. – Sandy

risposta

1

Hai una scheda SD sul dispositivo Android-M? In caso negativo, inserire la scheda SD e riprovare.

+0

grazie mille .. hai davvero reso la mia giornata – Anu

+0

E i dispositivi che non hanno alcuna scheda sdcard esterna ???? – Chaitu

+0

Se il codice è corretto ma non è possibile ottenere la mappa, è necessario inserire la sdcard e provare a caricare la mappa su Android-M. – Santhosh

1

Non riesco a trovare nessuno strano nel xml. Tuttavia, l'errore di inflazione potrebbe non verificarsi solo su questo layout. Ad esempio, questo layout xml include toolbar_layout, forse l'errore è in toolbar_layout.xml.

Ti suggerisco, forse puoi contrassegnare alcuni tag e riprovare e scoprire che il tag di ricerca causa questa eccezione.

+0

Mostra il numero di riga del tag del frammento nel messaggio di errore. E se qualcosa non va nel layout della barra degli strumenti, allora dovrebbe mostrare lo stesso messaggio di errore anche su altre versioni. Ma sto ottenendo questo solo su Android M. – Anu