【问题标题】:Android Kotlin NullPointerException in Strings字符串中的 Android Kotlin NullPointerException
【发布时间】:2022-01-19 08:48:40
【问题描述】:

我正在制作一个应用程序,在这个应用程序中,我在 strings.xml 文件中写入了国家名称。我想在我的 Utils 类中获取这些国家/地区名称,但我无法获取这些字符串。如果你能帮忙,我会很高兴。我的代码如下:

class Utils {

    private var resources: Resources? = null
    private val utils = resources!!

    fun getAsiaCountriesFlags(): MutableList<Flag> {
        return mutableListOf(
            Flag(
                R.drawable.asia_turkey,
                listOf(
                    utils.getString(R.string.asia_armenia),
                    utils.getString(R.string.asia_iran),
                    utils.getString(R.string.asia_turkey),
                    utils.getString(R.string.asia_azerbaijan)
                ),
                utils.getString(R.string.asia_turkey)
            )
        )
    }
}

private val utils = 资源!!它在这条线上给了我一个错误。我得到的错误是这样的:

Process: com.example.flagquizapp, PID: 8949
    java.lang.NullPointerException
        at com.example.flagquizapp.util.Utils.<init>(Utils.kt:10)

【问题讨论】:

  • 您已经声明了可以为空的属性资源,并且您试图从该属性访问资源或上下文,而它无权访问它。您的 Utils 类不支持内容或资源。因此,请使用函数 getAsiaCountriesFlags( ) 来使用参数,例如 getAsiaCountriesFlags(resources: Resources) { }。
  • resources 为空,因为您从未初始化它。
  • 如何初始化它? @ADM

标签: android kotlin nullpointerexception


【解决方案1】:
**Before** 
<string-array name="country_array">

    <item>asia_armenia</item>
    <item>asia_iran</item>
    <item>asia_turkey</item>
    <item>asia_azerbaijan</item>
    <item>asia_turkey</item>

    </string-array>
**Create res--> Array.xml**
**After**
  var categories: Array<String?>
        categories=getResources().getStringArray(R.array.vehiclescategory_array);

【讨论】:

    【解决方案2】:

    您的resources 对象未初始化,因此您应该在类构造函数或方法中获取它

    在类构造函数中

    class Utils(private val resources: Resources) {
    
        fun getAsiaCountriesFlags(): MutableList<Flag> {
            ...
        }
    }
    

    在方法中

    class Utils {
    
        fun getAsiaCountriesFlags(resources: Resources): MutableList<Flag> {
            ...
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 1970-01-01
      • 2015-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      • 1970-01-01
      相关资源
      最近更新 更多