【问题标题】:App crashing when fetching from string ressources [duplicate]从字符串资源获取时应用程序崩溃[重复]
【发布时间】:2014-06-22 11:02:50
【问题描述】:

我在 string.xml 资源中有一个字符串数组;

<string-array name="errors_signup">
    <item>Successful sign up</item>
    <item>Invalid username!\n(more than 4 characters have to be used)</item>
    <item>Username already taken!\n(Change it)</item>
    <item>Invalid e-mail address!</item>
    <item>E-mail already used!\n(Choose another one)</item>
    <item>Invalid password\n(more than 4 characters have to be used)</item>
    <item>Couldn\'t create the account!\n(try again)</item>
    <item>Passwords are not identical\n</item>
</string-array>

我正在尝试通过以下代码获取它:

private String [] errorsSignup = getResources().getStringArray(R.array.errors_signup);

运行上述代码会立即使应用程序崩溃。有什么解释吗? 这是日志:

05-06 02:22:18.941: D/dalvikvm(4111): GC_EXTERNAL_ALLOC freed 111K, 47% free 2913K/5447K, external 1033K/1036K, paused 63ms
05-06 02:22:19.066: W/dalvikvm(4111): threadid=1: thread exiting with uncaught exception (group=0x40018578)
05-06 02:22:19.073: E/AndroidRuntime(4111): FATAL EXCEPTION: main
05-06 02:22:19.073: E/AndroidRuntime(4111): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.CheesyDev.penpal/com.CheesyDev.penpal.A1_signup}: java.lang.NullPointerException

【问题讨论】:

  • 能否在您的问题中包含错误日志? :) 你提供的代码的第二行是否被投诉的行号?
  • this 可以帮到你。
  • 所以我注意到 A1_signup.java 第 65 行有一个运行时异常。您能否将这一行包含在问题中?此行有一个您可能不希望为 null 的 null 变量
  • @AnixPasBesoin 不客气。

标签: android android-resources


【解决方案1】:

上面的代码有什么问题:

Activity 的资源在调用 onCreate 方法之前不可用。因此,在实例化Activity 时尝试通过初始化string array 来访问资源将引发NPE。

同样的问题深入解释here

感谢@Rembo 的帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    相关资源
    最近更新 更多