Ich schreibe eine Android-App, die ein Google-Map-Fragment enthält. Wenn ich das Kartenfragment von der Aktivität ausschließe, in der es enthalten ist, läuft die App einwandfrei. Wenn ich das Kartenfragment einfüge, bekomme ich die Ausnahme in der Blockquote unten zitiert. Das nervigste daran ist, dass dies vor ein paar Wochen noch nicht geschehen ist. Diese Aktivität lief wochenlang einwandfrei und dann habe ich Android Studio aktualisiert und jetzt bekomme ich diese Ausnahme. Ich habe google und mehrere Threads auf stackoverflow nach Lösungen durchsucht, nichts geht. Ich habe sogar versucht, die Google Android Demo für eine Kartenaktivität zu kopieren und einzufügen, und ich bekomme die gleiche Ausnahme. Bitte helfen.Android Studio: Fehler beim Aufblasen von Klassenfragmenten
Die Ausnahme angehoben (von android Monitor kopiert):
Schwerwiegende Ausnahme: main Prozess: com.androidapps.seanmcalinden.firstandroidapp, PID: 23089 java.lang.RuntimeException: Kann nicht Aktivität starten ComponentInfo {com.androidapps.seanmcalinden.firstandroidapp/com.androidapps.seanmcalinden.firstadroidapp.MapsActivity}: android.view.InflateException: Binär-XML-Dateizeile # 55: Binär-XML-Dateizeile # 55: Fehler beim Aufblasen des Klassenfragments bei android.app. ActivityThread.performLaunchActivity (ActivityThread.java:2416) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2476) bei android.app.ActivityThread.-wrap11 (ActivityThread.java) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1344) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:148) bei android.app.ActivityThread.main (ActivityThread.java:5417) bei java .lang.reflect.Method.invoke (Native Methode) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:726) bei com.an droid.internal.os.ZygoteInit.main (ZygoteInit.java:616) verursacht durch: android.view.InflateException: Binär-XML-Datei Zeile # 55: Binär-XML-Datei Zeile # 55: Fehler beim Aufblasen des Klassenfragments bei android.view. LayoutInflater.infllate (LayoutInflater.java:539) bei android.view.LayoutInflater.infllate (LayoutInflater.java:423) bei android.view.LayoutInflater.infllate (LayoutInflater.java:374) bei com.android.internal. policy.PhoneWindow.setContentView (PhoneWindow.java:393) bei android.app.Activity.setContentView (Activity.java:2166) unter com.androidapps.seanmcalinden.firstadroidapp.MapsActivity.onCreate (MapsActivity.java:67) bei android.app.Activity.performCreate (Activity.java:6237) bei android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1107) bei android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2369) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2476) bei android.app.ActivityThread.-wrap11 (ActivityThread.java) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1344) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:148) bei android.app.ActivityThread.main (ActivityThread.java:5417) bei java.lang.reflect.Method.Rufen Sie (Native Methode) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:726) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java: 616) verursacht durch : android.view.InflateException: Binäre XML-Datei Zeile # 55: Fehler beim Aufblasen des Klassenfragments bei android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:782) bei android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:704) bei android.view.LayoutInflater.rInfllate (LayoutInflater.java:835) bei android.view.LayoutInflater.rInfllateChildren (LayoutInflater.java:798) bei android.view.LayoutInflater.inflate (LayoutInflater.java:515) bei android.view.LayoutInflater.inflate (LayoutInflater.java:423) bei android.view.LayoutInflater.inflate (LayoutInflater.java:374) bei com .android.internal.policy.PhoneWindow.setContentView (PhoneWindow.java:393) bei android.app.Activity.setContentView (Activity.java:2166) bei com.androidapps.seanmcalinden.firstadroidapp.MapsActivity.onCreate (MapsActivity.java : 67) bei android.app.Activity.performCreate (Activity.java:6237) bei android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1107) bei android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2369) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2476) bei android.app.ActivityThread.-wrap11 (ActivityThread.java) bei Android .app.ActivityThread $ H.handleMessage (ActivityThread.java:1344) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:148) bei Android .app.ActivityThread.main (ActivityThread.java:5417) bei java.lang.reflect.Method.invoke (systemeigene Methode) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:726) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616) verursacht durch: java.lang.NullPointerException : Versuch, die virtuelle Methode 'boolean java.io.File.mkdir()' für eine Nullobjekt-Referenz unter com.google.maps.api.android.lib6.gmm6.m.ad.a (Unbekannte Quelle) an aufzurufen com.google.maps.api.android.lib6.gmm6.cha (Unbekannte Quelle) unter com.google.maps.api.android.lib6.gmm6.cya (Unbekannte Quelle) unter com.google.maps.api. android.lib6.e.bd.a (Unbekannte Quelle) at com.google.maps.api.android.lib6.e.ev.a (Unbekannt Sou rce) unter com.google.maps.api.android.lib6.eza (Unbekannte Quelle) unter com.google.maps.api.android.lib6.eya (Unbekannte Quelle) unter com.google.android.gms. maps.internal.u.onTransact (SourceFile: 107) unter android.os.Binder.transact (Binder.java:387) unter com.google.android.gms.maps.internal.IMapFragmentDelegate $ zza $ zza.onCreateView (Unbekannte Quelle) bei com.google.android.gms.maps.MapFragment $ zza.onCreateView (Unbekannte Quelle) bei com.google.android.gms.dynamic.zza $ 4.zzb (Unbekannte Quelle) bei com.google. android.gms.dynamic.zza.zza (Unbekannte Quelle) bei com.google.android.gms.dynamic.zza.onCreateView (Unbekannte Quelle) bei com.google.android.gms.maps.MapFragment.onCreateView (Unbekannte Quelle) bei android.app.Fragment .performCreateView (Fragment.java:2220) bei android.app.FragmentManagerImpl.moveToState (FragmentManager.java:949) bei android.app.FragmentManagerImpl.moveToState (FragmentManager.java:1126) bei android.app.FragmentManagerImpl.addFragment (FragmentManager.java:1228) bei android.app.FragmentManagerImpl.onCreateView (FragmentManager.java:2201) bei android.app.FragmentCont roller.onCreateView (FragmentController.java:98) bei android.app.Activity.onCreateView (Activity.java:5546) bei android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView (BaseFragmentActivityHoneycomb.java:34) bei Android. support.v4.app.FragmentActivity.onCreat
Die OnCreate Methode:
protected void onCreate(Bundle savedInstanceState) {
Log.e("success", "entered onCreate in MapsActivity");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
MapFragment mapFragment =
(MapFragment) getFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
if (locationGAC == null) {
// ATTENTION: This "addApi(AppIndex.API)"was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
locationGAC = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.addApi(AppIndex.API).build();
Log.e("success", "created locationGAC");
}
Log.d("myTag", "test output 1");
createFriendList();
}
Die Layoutdatei für diese Aktivität:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="@color/colorPrimary"
android:weightSum="1" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" >
<Button
android:layout_width="70dp"
android:layout_height="60dp"
android:text="Back"
android:id="@+id/button"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_alignBottom="@+id/SearchBar1"
android:onClick="backToLogin"
android:background="@color/colorPrimaryDark"
android:textColor="#ffffff" />
<EditText
android:layout_width="0dp"
android:layout_height="60dp"
android:id="@+id/SearchBar1"
android:layout_alignParentTop="true"
android:hint="Search"
android:layout_alignParentEnd="false"
android:layout_alignParentStart="false"
android:layout_toEndOf="@id/button"
android:layout_toStartOf="@+id/SearchButton"
android:textColor="#ffffff"
android:textColorHint="#ffffff" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="70dp"
android:layout_height="60dp"
android:text="Go"
android:id="@+id/SearchButton"
android:layout_alignParentRight="true"
android:enabled="true"
android:onClick="onSearch"
android:textColor="#ffffff"
android:background="@color/colorPrimaryDark" />
</RelativeLayout>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MapsActivity"
class="com.google.android.gms.maps.MapFragment" />
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="60dp"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_alignParentBottom="true"
android:orientation="horizontal">
<Button
android:layout_width="70dp"
android:layout_height="60dp"
android:text="Retrieve"
android:id="@+id/serverRetrieveButton"
android:layout_gravity="left"
android:textColor="#ffffff"
android:onClick="getLocationFromDexelus"
android:background="@color/colorPrimaryDark" />
<Button
android:layout_width="70dp"
android:layout_height="60dp"
android:text="Send"
android:id="@+id/serverSendButton"
android:layout_alignParentRight="true"
android:textColor="#ffffff"
android:onClick="sendLocationToDexelus"
android:background="@color/colorPrimaryDark" />
</RelativeLayout>
</RelativeLayout>
Wie oben gesagt, habe ich viele Lösungen hier auf Stackoverflow versucht. Um nicht zu sagen, dass Sie diese nicht noch einmal posten sollten, sondern eher, dass mein Thema komplexer oder spezifischer sein könnte als diese, weil keine der gegebenen Lösungen für mich funktioniert hat.
Danke.
Stellen Sie die Posts bereit, die Sie bereits überprüft haben, damit andere nicht versuchen, sie zu duplizieren. Sie haben erwähnt, dass dies nach der Aktualisierung von AS passiert ist, was ist die aktuelle Version Ihrer Google-Play-Dienste? Wird es möglich sein, Ihre Größe zu posten? –
Überprüfen Sie den Code in dieser SO-Frage [17469661] (http://stackoverflow.com/questions/17469661/google-mapfragment-not-working-in-android) und [15703245] (http://stackoverflow.com/questions/15703245/google-maps-fragment-doesnt-load) wenn es Ihnen helfen kann. Versuchen Sie, SupportMapFragment statt nur MapFragment zu verwenden. – KENdi