getSupportFragmentManager gibt null zurück
Ich möchte Google-maps in meine android-app:
public class DisplayMapActivity extends ActionBarActivity {
private LbsTracker2 lbsTracker2;
private GoogleMap googleMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
this.initilizeMap();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void onResume() {
super.onResume();
initilizeMap();
}
private void initilizeMap() {
if (googleMap == null) {
MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.map); //<--- always null! :(
googleMap = mapFragment.getMap();
}
}
...
}
Aber meine variable mapFragment ist immer null, in meiner Methode initializeMap() ...
Xml meiner Tätigkeit:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.lbsapp.DisplayMapActivity$PlaceholderFragment" >
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:tag="tag_fragment_map" />
</RelativeLayout>
Manifest meiner app:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.lbsapp"
android:versionCode="1"
android:versionName="1.0" >
<permission
android:name="info.androidhive.googlemapsv2.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="info.androidhive.googlemapsv2.permission.MAPS_RECEIVE" />
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- Required to show current location -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- Required OpenGL ES 2.0. for Maps V2 -->
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.lbsapp.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.lbsapp.DisplayLbsActivity"
android:label="@string/title_activity_display_lbs"
android:parentActivityName="com.example.lbsapp.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.lbsapp.MainActivity" />
</activity>
<!-- Goolge Maps API Key -->
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyDnnWGwO8Zfbn5PGKXPF3aspbZTCtJ6j7I" />
<activity
android:name="com.example.lbsapp.DisplayMapActivity"
android:label="@string/title_activity_display_map"
android:parentActivityName="com.example.lbsapp.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.lbsapp.MainActivity" />
</activity>
</application>
</manifest>
tut Sie app crash beim Start ? kannst du die logs ?
Stürzt nicht ab, wie es in try/catch. Keine Notwendigkeit für die logs. Das problem ist, dass (SupportMapFragment)getSupportFragmentManager() .findFragmentById(R. id.Karte); gibt null zurück.
Stürzt nicht ab, wie es in try/catch. Keine Notwendigkeit für die logs. Das problem ist, dass (SupportMapFragment)getSupportFragmentManager() .findFragmentById(R. id.Karte); gibt null zurück.
InformationsquelleAutor mosquito87 | 2014-04-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
War das problem da:
Natürlich hat es zu
InformationsquelleAutor mosquito87
Ich würde empfehlen, mit der sopportMapFragment zur Unterstützung älterer version..
Beispiel:
InformationsquelleAutor Rod_Algonquin
Ich denke, es wird funktionieren, wenn Sie die Zeile, die Sie setzen in die Kommentare. Kommentieren Sie die MapFragment und Kommentar der mit SupportMapFragment. MapFragment ist die moderne version für die map-Fragmente.
Auch im layout versuchen class="com.google.android.gms.maps.MapFragment" statt SupportMapFragment.
Versuchen Sie, die änderung in der layout, das ich Hinzugefügt, um meine Antwort.
warum
MapFragment
stattSupportMapFragment
?Nur bemerkt man bedeutende detail. In Ihrem code, den Sie legen Sie den Typ des fragments in android:name-Attribut. Versuchen Sie Klasse statt, ohne android: davor.
Gut, laut der Dokumentation MapFragment ist für Android-Versionen 3.1 oder höher (API 12). SupportMapFragment unterstützt ältere Android-Versionen, so dass es weniger bevorzugt für die neuen apps. In meinen Implementierungen ich die Mindest-SDK-version auf 14, und ich kann immer machen es mit MapFragment.
InformationsquelleAutor Alex Stylianos