Ich habe vor kurzem meine App auf SKMaps 3.0.2 aktualisiert, und alles schien zu funktionieren, vor allem, wenn meine Aktivität ("ViewLocationActivity"), ein Fragment, das Android erweitert .support.v4.app.Fragment ("NewMapFragment") wird neu gestartet, nachdem es zum Beispiel einige Zeit im Hintergrund war und die Methode onStart() aufgerufen wurde. Das Fragment kann den SKMapViewHolder nicht aufblasen und stürzt ab. Ich habe das Protokoll gebunden, aber es scheint, den Grund dafür ist die Linie, die besagt,SKMaps Android Trace-Fehler in Activity OnStart()
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.skobbler.ngx.map.SKMapViewStyle.getStyleFileName()' on a null object reference at com.skobbler.ngx.map.SKMapViewHolder.a(SourceFile:254)
Diese nicht in der früheren SDK-Version nicht auftreten und ist besonders seltsam, da es nicht passieren, wenn zuerst das Fragment Laden, aber nur in nachfolgenden Neustarts, wenn onStart() aufgerufen wird.
Relevant Code-Schnipsel
@Override
public void onStart() // In ViewLocationActivity {
super.onStart();
Intent intent = new Intent(this, LocationService.class);
bindService(intent, mConnection, BIND_AUTO_CREATE);
}
public void onCreate(Bundle savedInstanceState) // in NewMapFragment {
super.onCreate(savedInstanceState);
Methods.initializeSKMaps(getActivity());
locationManager = (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);
registerLocationListener();
SKCurrentPositionProvider currentPositionProvider = new SKCurrentPositionProvider(getActivity());
currentPositionProvider.setCurrentPositionListener(this);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) // in NewMapFragment {
// App crashes in this line
mView = inflater.inflate(R.layout.fragment_new_map, container, false);
mapHolder = (SKMapViewHolder)mView.findViewById(R.id.map_surface_holder);
mapHolder.setMapSurfaceListener(this);
initializeControlButtons();
initializeBottomSheet();
return mView;
}
<!-- fragment_new_map -->
<android.support.design.widget.CoordinatorLayout
android:id="@+id/skobbler_map_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<com.skobbler.ngx.map.SKMapViewHolder
android:id="@+id/map_surface_holder"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<include layout="@layout/map_control_layout"
android:id="@+id/map_control_layout"/>
</android.support.design.widget.CoordinatorLayout>
Logcat:
01-23 20: 40: 19.453 bis 19.453 51,548/com.shay.vagabond E/Android Runtime: schwerwiegendes EXCEPTION: Hauptprozeß: com .shay.vagabond, PID: 19453 java.lang.RuntimeException: Aktivität kann nicht gestartet werden ComponentInfo {com.shay.vagabond/com.shay.vagabond.Activities.ViewLocationActivity}: android.view.InflateException: Binär-XML-Dateizeile # 7: Binär XML-Datei Zeile # 7: Fehler beim Aufblasen der Klasse com.skobbler.ngx.map.SKMapViewHolder bei android.app.ActivityThread.performLaunchActiv ity (ActivityThread.java:2646) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2707) bei android.app.ActivityThread.-wrap12 (ActivityThread.java) bei android.app.ActivityThread $ H.handleMessage (ActivityThread. Java: 1460) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:154) bei android.app.ActivityThread.main (ActivityThread.java:6077) um java.lang.reflect.Method.invoke (native Methode) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:865) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java : 755) Verursacht von: android.view.InflateException: Binär-XML-Datei Zeile # 7: Binär-XML-Datei Zeile # 7: Fehler beim Aufblasen der Klasse com.skobbler.ngx.map.SKMapViewHolder Verursacht von: android.view.InflateException: Binär XML-Datei Zeile # 7: Fehler beim Aufblasen der Klasse com.skobbler.ngx.map.SKMapViewHolder Verursacht von: java.lang.reflect.InvocationTargetException bei java.lang.reflect.Constructor.newInstance0 (Native Methode) bei java.lang .reflect.Constructor.newInstance (Constructor.java:430) bei android.view.LayoutInflater.createView (LayoutInflater.java:645) bei android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:787) bei android.view.LayoutInflater. createViewFromTag (LayoutInflater.java:727) bei android.view.LayoutInflater.rInfllate (LayoutInflater.java:858) bei android.view.LayoutInflater.rInfllateChildren (LayoutInflater.java:821) bei android.view.LayoutInflater.inflate (LayoutInflater.java : 518) bei android.view.LayoutInflater.inflate (LayoutInflater.java:426) bei com.shay.vagabond.Fragments.NewMapFragment.onCreateView (NewMapFragment.java:155) bei android.support.v4.app.Fragment.performCreateView (Fragment.java:2087) bei android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1113) bei android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1295) bei android.support.v4 .app.FragmentManagerImpl.moveToState (FragmentManager.java:1277) unter android.support.v4.app.FragmentManagerImpl.dispat chActivityCreated (FragmentManager.java:2154) bei android.support.v4.app.FragmentController.dispatchActivityCreated (FragmentController.java:201) bei android.support.v4.app.FragmentActivity.onStart (FragmentActivity.java:603) bei android.support .v7.app.AppCompatActivity.onStart (AppCompatActivity.java:181) bei com.shay.vagabond.Activities.ViewLocationActivity.onStart (ViewLocationActivity.java:691) bei android.app.Instrumentation.callActivityOnStart (Instrumentation.java:1248) bei android.app.Activity.performStart (Activity.java:6681) bei android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2609) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2707) at android.app.ActivityThread .-wrap12 (ActivityThread.java) unter android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1460) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper .java: 154) bei android.app.ActivityThread.main (ActivityThread.java:6077) bei Java.lang.reflect.Method.invoke (Native Methode) unter com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:865) unter com.android.internal.os.ZygoteInit.main (ZygoteInit.java:755) Verursacht von: java.lang.NullPointerException: Versuch, die virtuelle Methode 'java.lang.String com.skobbler.ngx.map.SKMapViewStyle.getStyleFileName()' für eine Nullobjektverweisliste unter com.skobbler.ngx.map.SKMapViewHolder aufzurufen .a (SourceFile: 254) unter com.skobbler.ngx.map.SKMapViewHolder. (SourceFile: 159) unter java.lang.reflect.Constructor.newInstance0 (Native Method) unter java.lang.reflect.Constructor.newInstance (Constructor. Java: 430) bei android.view.LayoutInflater.createView (LayoutInflater.java:645) bei android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:787) bei android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:727) um android.view.LayoutInflater.rInfllate (LayoutInflater.java:858) bei android.view.LayoutInflater.rInfllateChildren (LayoutInflater.java:821) bei android.view.LayoutIn flatter.infllate (LayoutInflater.java:518) bei android.view.LayoutInflater.infllate (LayoutInflater.java:426) unter com.shay.vagabond.Fragments.NewMapFragment.onCreateView (NewMapFragment.java:155) unter android.support.v4 .app.Fragment.performCreateView (Fragment.java:2087) unter android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1113) unter android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1295) Unter android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1277) unter android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated (FragmentManager.java:2154) unter android.support.v4.app.FragmentController. dispatchActivityCreated (FragmentController.java:201) unter android.support.v4.app.FragmentActivity.onStart (FragmentActivity.java:603) unter android.support.v7.app.AppCompatActivity.onStart (AppCompatActivity.java:181) unter com.shay .vagabond.Activities.ViewLocationActivity.onStart (ViewLocationActivity.java:691) bei android.app. Instrumentation.callActivityOnStart (Instrumentation.java:1248) unter android.app.Activity.performStart (Activity.java:6681) unter android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2609) at android.app.ActivityThread.handleLaunchActivity (ActivityThread .java: 2707) bei android.app.ActivityThread.-wrap12 (ActivityThread.java) unter android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1460) unter android.os.Handler.dispatchMessage (Handler.java:102) Bei android.os.Looper.loop (Looper.java:154) bei android.app.ActivityThread.main (ActivityThread.java:6077) bei java.lang.reflect.Method.invoke (Native Method) bei com.android. internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:865) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:755)