提问人:Sohaib Ahmed 提问时间:7/5/2023 最后编辑:Sohaib Ahmed 更新时间:7/10/2023 访问量:844
空对象引用上的“boolean java.lang.Class.isInterface()”
'boolean java.lang.Class.isInterface()' on a null object reference
问:
我在 Android 13 上遇到以下代码崩溃。
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.Class.isInterface()' on a null object reference
法典:
val temp = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU)
bundle.getParcelable(ARG_TAG, Tab::class.java)
else
bundle.getParcelable(ARG_TAG)
DataClass(选项卡)如下所示:
@Keep
@Parcelize
data class Tab(
val data: List<String>? = null,
val icon: String? = null,
val provider: String? = null,
val subtype: String? = null,
val title: String,
val items: Int = 0
) : Parcelable
答:
5赞
Sohaib Ahmed
7/10/2023
#1
我已经找到了解决方案,通过使用 Android-13 的推荐方法BundleCompat
val temp = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU)
BundleCompat.getParcelable(bundle, ARG_TAG, Tab::class.java)
else
bundle.getParcelable(ARG_TAG)
评论
0赞
Bitwise DEVS
9/24/2023
活动意图怎么样?这个问题似乎困扰着 Android 13,以至于它也只出现在发布版本中。
0赞
Sohaib Ahmed
9/25/2023
您也可以更新意图,
0赞
diAz
10/5/2023
检查已经在里面完成了。BuildCompat.isAtLeastU()
0赞
Sohaib Ahmed
10/5/2023
感谢您的分享,它已被弃用并声明为“Android UpsideDownCase 是最终版本,此方法不再是”+“必要。它将在此库的未来版本中删除。请改用“+”。Build.VERSION.SDK_INT >= 34
0赞
Stuart Fisher
11/1/2023
谢谢。我遇到了同样的问题,您的解决方案也为我解决了这个问题。我从事专业开发人员已有近 30 年,我从未遇到过像 Android 这样繁琐的平台!
1赞
V-master
12/5/2023
对于任何想知道 API 33 实现出了什么问题的人,这里是 Google Dev 的描述 issuetracker.google.com/issues/240585930#comment6
评论