Ich habe Probleme beim Laden eines Google Maps in meinem Fragment. Alles beginnt in einem Recycler Ansicht Adapter, der die Aktivität "ViatgeDetallViewActivity" launchs:Google Maps in Fragment Android
Context context = mActivity.getApplicationContext();
Intent intent = new Intent(context, ViatgeDetallViewActivity.class);
holder.mViatge.getId());
intent.putExtra("desc",p.getDesc());
intent.putExtra("location",p.getLocation());
mActivity.startActivityForResult(intent,ACTIVITY_View);
Das ist mein DetallViewActivity ist:
public class ViatgeDetallViewActivity extends AppCompatActivity {
ViatgeDetallViewFragment fragment;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view);
Bundle extras = getIntent().getExtras();
if(extras != null)
{
String s = getIntent().getStringExtra("desc");
Location l = getIntent().getParcelableExtra("location");
Log.d("myTag", "estoy en el oncreate de detallviewActivity pasando pro extras" + s);
}
fragment = new ViatgeDetallViewFragment();
getSupportFragmentManager().beginTransaction()
.add(R.id.activity_fragment_view, fragment)
.commit();
getFragmentManager().beginTransaction().add(R.id.activity_fragment_view, fragment).commit();
}
}
Mit meinem ViatgeDetallViewFragment Wesen:
public class ViatgeDetallViewFragment extends Fragment implements OnMapReadyCallback {
private GoogleMap mMap;
private Marker mMarcadorActual;
public ViatgeDetallViewFragment() {
}
....
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_view, container, false);
SupportMapFragment mapFragment =
(SupportMapFragment)
getChildFragmentManager().findFragmentById(R.id.fragment_view_map);
mapFragment.getMapAsync(this);
return rootView;
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
//ask for permissions..
mMap.setMyLocationEnabled(true);
LatLng sydney = new LatLng(-34, 151);
mMarcadorActual = mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
}
Mit den Layouts zu sein , Activity_view:
<Linear ...
<android.support.v7.widget.Toolbar
android:id="@+id/tlbMenuView"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="4dp"
/>
<FrameLayout
android:id="@+id/activity_fragment_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
fragment_view:
<LinearLayout android:id="@+id/layout_fragment_view" xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
>
..
<fragment
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/fragment_view_map"
class="com.google.android.gms.maps.MapFragment"></fragment>
</LinearLayout>
Das Problem kommt, wenn ich Start tje "ViatgeDetallActivity" versuchen, erhalte ich dies im Protokoll:
FATAL AUSNAHME: Haupt Prozess: com.example.usuari. myapplication3, PID: 6390 java.lang.RuntimeException: Aktivität konnte nicht gestartet werden ComponentInfo {com.example.usuari.myapplication3/com.example.usuari.myapplication3.ViatgeDetailViewActivity}: java.lang.Null PointerException: Versuch virtuelle Methode 'VOID com.google.android.gms.maps.SupportMapFragment.getMapAsync (com.google.android.gms.maps.OnMapReadyCallback)' auf einem Null-Objektreferenz bei android.app aufzurufen. ActivityThread.performLaunchActivity (ActivityThread.java:3254) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3350) bei android.app.ActivityThread.access 1100 $ (ActivityThread.java:222) bei android.app .ActivityThread $ H.handleMessage (ActivityThread.java:1795) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:158) bei android.app.ActivityThread.main (ActivityThread.java:7229) bei java.lang.reflect.Method.invoke (native Methode) um com .android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:1230) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1120) verursacht durch: java.lang.NullPointerException: Versuch um die virtuelle Methode 'void com.google.android.gms.maps.SupportMapFragment.getMapAsync (com.google.android.gms.maps.OnMapReadyCallback)' auf eine Null-Objekt-Referenz umaufzurufencom.example.usuari.myapplication3.ViatgeDetallViewFragment.onCreateView (ViatgeDetallViewFragment.java:82) bei android.support.v4.app.Fragment.performCreateView (Fragment.java:2074) bei android.support.v4.app .FragmentManagerImpl.moveToState (FragmentManager.java:1104) bei android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1286) bei android.support.v4.app.BackStackRecord.run (BackStackRecord.Java: 758) bei android.support.v4.app.FragmentManagerImpl.execPendingActions (FragmentManager.java:1671) bei android.support.v4.app.FragmentController.execPendingActions (FragmentController.java:388) bei android .support.v4.app.FragmentActivity.onStart (FragmentActivity.java:619) unter android.app.Instrumentation.callActivityOnStart (Instrumentation.java:1265) bei android.app.Activity.performStart (Activity.java:6915) um android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3217) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3350) bei android.app.ActivityThread.access 1100 $ (ActivityThread.java:222) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java: 1795) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:158) bei android.app.ActivityThread.main (ActivityThread.java:7229) bei java.lang.reflect.Method.invoke (native Methode) um com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.jav a: 1230) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1120) 03-24 02: 55: 53.871 6390-7362/com.beispiel.usuari.myapplication3 W/DynamiteModule: Local Modul-Deskriptorklasse für com.google.android.gms.googlezertifikate nicht gefunden. 03-24 02: 55: 53.881 6390-7362/com.beispiel.usuari.myapplication3 I/DynamiteModule: Betrachtet lokale Modul com.google.android.gms.googlecertificates: 0 und Remote-Modul com.google.android. gms.googlecertificates: 03 bis 24 Februar 02: 55: 53,881 6.390-7.362/com.example.usuari.myapplication3 I/DynamiteModule: Ausgewählte Remote-Version von com.google.android.gms.googlecertificates, Version
= 2 03-24 02: 55: 53.881 6390-7362/com.beispiel.usuari.myapplication3 W/ResourcesManager: getTopLevelResources: /data/user/0/com.google.android.gms/app_chimera/m/00000005/ DynamiteModulesA_GmsCore_prodmnc_alldpi_release.apk /1.0 ausgeführt in com.example.usuari.myapplication3 rsrc des Pakets com.example.usuari.myapplication3 03-24 02: 55: 53.891 6390-7362/com.example.usuari.myapplication3 D/ResourcesManager: Für Benutzer 0 neue Overlays abgerufen Null 03-24 02: 55: 53.891 6390-7362/com.beispiel.usuari.myapplication3 W/ResourcesManager: getTopLevelResources: /data/user/0/com.google.android.gms/app_chimera/ m/00000005/DynamiteModulesA_GmsCore_prodmnc_alldpi_release.apk /1.0 läuft in com.example.usuari.myapplication3 rsrc von Paket com.example.usuari.myapplication3
Wenn ich das richtig verstanden, Sie mögen, dass ich das Element Fragment im Layout für eine SupportMapFragment zu ändern, aber Android Studio als gültige Typ ist nicht zu erkennen, dass! – Asdemuertes