NullPointerexception ring StringArray zu String [
-
27-10-2019 - |
Frage
Ok, ich habe 5 Arrays alle mit 5 Elementen in meiner Datei in meiner Strings.xml wie SO:
<string-array name="monday">
<item>monday</item>
<item>tuesday</item>
<item>wednesday</item>
<item>thursday</item>
<item>friday</item>
</string-array>
Jetzt habe ich eine Switch -Anweisung in meinem Code, die auf der Schaltfläche, auf die sie klicken, eines dieser 5 Arrays auf mein Hauptarray festlegen. Ich habe jedoch viele unterschiedliche Wege ausprobiert, aber ich bekomme immer noch die Ausnahme von Nullzeiger in dieser Zeile:
Days.masterarray = getResources().getStringArray(R.array.monday);
Auch trugen dies, bekam aber das gleiche Ergebnis:
Days.setMasterarray(getResources().getStringArray(R.array.monday));
Master -Array:
public static String[] masterarray = new String[] { "monday", "tuesday",
"wednesday", "thursday", "friday" };
Ich habe es zunächst Standardwerte gegeben. Wenn ich jetzt die Switch -Anweisung ausführe, bekomme ich Folgendes:
03-19 13:43:23.555: WARN/System.err(1379): java.lang.NullPointerException
03-19 13:43:23.586: WARN/System.err(1379): at android.content.ContextWrapper.getResources(ContextWrapper.java:81)
03-19 13:43:23.586: WARN/System.err(1379): at schoolBook.Icestone.Days.setArray(Days.java:77)
03-19 13:43:23.595: WARN/System.err(1379): at schoolBook.Icestone.SampleActivity.onCreate(SampleActivity.java:27)
03-19 13:43:23.605: WARN/System.err(1379): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
03-19 13:43:23.626: WARN/System.err(1379): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1700)
03-19 13:43:23.626: WARN/System.err(1379): at android.app.ActivityThread.startActivityNow(ActivityThread.java:1577)
03-19 13:43:23.635: WARN/System.err(1379): at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:130)
03-19 13:43:23.644: WARN/System.err(1379): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:342)
03-19 13:43:23.655: WARN/System.err(1379): at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:680)
03-19 13:43:23.676: WARN/System.err(1379): at android.widget.TabHost.setCurrentTab(TabHost.java:349)
03-19 13:43:23.676: WARN/System.err(1379): at android.widget.TabHost.addTab(TabHost.java:239)
03-19 13:43:23.695: WARN/System.err(1379): at schoolBook.Icestone.Days.onCreate(Days.java:32)
03-19 13:43:23.695: WARN/System.err(1379): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
03-19 13:43:23.695: WARN/System.err(1379): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1700)
03-19 13:43:23.716: WARN/System.err(1379): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1752)
03-19 13:43:23.716: WARN/System.err(1379): at android.app.ActivityThread.access$1500(ActivityThread.java:123)
03-19 13:43:23.716: WARN/System.err(1379): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:993)
03-19 13:43:23.735: WARN/System.err(1379): at android.os.Handler.dispatchMessage(Handler.java:99)
03-19 13:43:23.735: WARN/System.err(1379): at android.os.Looper.loop(Looper.java:126)
03-19 13:43:23.744: WARN/System.err(1379): at android.app.ActivityThread.main(ActivityThread.java:3997)
03-19 13:43:23.754: WARN/System.err(1379): at java.lang.reflect.Method.invokeNative(Native Method)
03-19 13:43:23.754: WARN/System.err(1379): at java.lang.reflect.Method.invoke(Method.java:491)
03-19 13:43:23.754: WARN/System.err(1379): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
03-19 13:43:23.775: WARN/System.err(1379): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
03-19 13:43:23.775: WARN/System.err(1379): at dalvik.system.NativeStart.main(Native Method)
Jedes Licht, wie man das beheben kann, wäre sehr geschätzt
Lösung
Ich denke, GetResources könnte null sein. Versuchen Sie es entweder
- Platzieren Sie einen Haltepunkt in dieser Zeile und Debugg, um festzustellen, ob es sich um Null handelt (wenn es nicht null ist, dann finden Sie, was null ist).
- Verwenden des Kontextes. dh.
mContext.getResources().getStringArray(R.array.monday));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow