gpt4 book ai didi

java - 声明字符串数组导致问题

转载 作者:行者123 更新时间:2023-12-02 07:57:16 24 4
gpt4 key购买 nike

我正在尝试声明一个字符串数组,我将在代码中使用它。我已经通过两种方式完成了这件事,我认为这两种方式都是可行的选择,但其中一种会导致我的应用程序在加载时崩溃,而不会失败。

工作代码:

private String[] list = {"apple", "pear"};

不是工作代码:

Resources res = getResources();
private String[] list = res.getStringArray(R.array.Fruit);

奇怪的是,后面的代码是直接从 Android String Resource 页面复制的。我已经确保数组(在本例中标题为 Fruit)存在,但现在有点丢失了。

我收到的Log Cat错误如下:

02-25 12:38:18.015: ERROR/AndroidRuntime(605): FATAL EXCEPTION: main
02-25 12:38:18.015: ERROR/AndroidRuntime(605): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.ikiar.appname/com.ikiar.appname.Main}: java.lang.NullPointerException
02-25 12:58:52.284: ERROR/AndroidRuntime(717): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
02-25 12:58:52.284: ERROR/AndroidRuntime(717): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
02-25 12:58:52.284: ERROR/AndroidRuntime(717): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
02-25 12:58:52.284: ERROR/AndroidRuntime(717): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
02-25 12:58:52.284: ERROR/AndroidRuntime(717): at android.os.Handler.dispatchMessage(Handler.java:99)
02-25 12:58:52.284: ERROR/AndroidRuntime(717): at android.os.Looper.loop(Looper.java:123)
02-25 12:58:52.284: ERROR/AndroidRuntime(717): at android.app.ActivityThread.main(ActivityThread.java:4627)
02-25 12:58:52.284: ERROR/AndroidRuntime(717): at java.lang.reflect.Method.invokeNative(Native Method)
02-25 12:58:52.284: ERROR/AndroidRuntime(717): at java.lang.reflect.Method.invoke(Method.java:521)
02-25 12:58:52.284: ERROR/AndroidRuntime(717): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-25 12:58:52.284: ERROR/AndroidRuntime(717): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-25 12:58:52.284: ERROR/AndroidRuntime(717): at dalvik.system.NativeStart.main(Native Method)
02-25 12:58:52.284: ERROR/AndroidRuntime(717): Caused by: java.lang.NullPointerException
02-25 12:58:52.284: ERROR/AndroidRuntime(717): at android.content.ContextWrapper.getResources(ContextWrapper.java:80)
02-25 12:58:52.284: ERROR/AndroidRuntime(717): at com.ikiar.appname.Main.<init>(Main.java:24)
02-25 12:58:52.284: ERROR/AndroidRuntime(717): at java.lang.Class.newInstanceImpl(Native Method)
02-25 12:58:52.284: ERROR/AndroidRuntime(717): at java.lang.Class.newInstance(Class.java:1429)
02-25 12:58:52.284: ERROR/AndroidRuntime(717): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
02-25 12:58:52.284: ERROR/AndroidRuntime(717): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)

感谢您的帮助!

编辑:更多 Log Cat 信息,添加了代码行 @ 崩溃位置

@崩溃位置:

Resources res = getResources();

解决方案:

Resources res - getResources(); 的位置移至 onCreate 方法中。

最佳答案

您已在 string.xml 文件中设置了string-array。如果您想使用:

private String[] list = res.getStringArray(R.array.Fruit);

尝试在 values 文件夹中创建一个 array.xml 文件,并在其中放置您的 Fruit 数组。

关于java - 声明字符串数组导致问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9446384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com