【问题标题】:NullPointerException trying to access a String resourceNullPointerException 试图访问字符串资源
【发布时间】:2011-05-08 14:51:11
【问题描述】:

我有以下 /res/values/uris.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="bladder">blahblah</string>
</resources>

我在代码中访问它:

private String bladderUrl= getString(R.string.bladder);

但它返回 null。不知道为什么?

【问题讨论】:

    标签: java android xml nullpointerexception android-assets


    【解决方案1】:

    我猜你是这样放置膀胱Url的:

    public class YourActivity extends Activity {
        private String bladderUrl = getString(R.string.bladder);
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
    
    ...
    

    但是你需要这样做:

    public class YourActivity extends Activity {
        private String bladderUrl;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
    
            bladderUrl = getString(R.string.bladder);
    ...
    

    【讨论】:

      【解决方案2】:

      首先要弄清楚这一点。您不必将所有字符串都包含在strings.xml 中。期间。

      Emmanuels 的回答部分正确。初始化上下文时,您必须在 onCreate() 方法中获取字符串。他的回答只是部分正确,因为他还提到您必须在 strings.xml 中包含字符串,这是不正确的。

      【讨论】:

        【解决方案3】:

        首先,确保这些值在文件 strings.xml 中。

        此外,您不能从构造函数访问字符串。应用程序上下文尚未初始化。您应该在 onCreate() 中执行此操作。

        伊曼纽尔

        【讨论】:

        • @Sheehan Alam 那么你很可能在应用设计方面遇到问题。
        • 我不确定我是否理解。该字符串在活动中,但 onCreate() 在子类中还是什么?只需将您的字符串移动到子类或使其受到保护。您只是无法从构造函数访问应用程序上下文,因此您必须稍后再做。
        猜你喜欢
        • 1970-01-01
        • 2017-04-16
        • 2013-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-05
        • 1970-01-01
        相关资源
        最近更新 更多