android - Android Studio/Kotlin - findViewById 使我的应用程序崩溃
问题描述
程序在到达 findViewById 时停止,我不知道为什么:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.splash_screen)
handler.postDelayed({ setContentView(R.layout.activity_main) }, 500) // 5 seconds
val imageView: ImageView = findViewById(R.id.splashScreenIMG)
Glide.with(this).load(R.drawable.sligames_waiting).into(imageView)
}
fun showButtons()
{
val view: View = findViewById(R.id.boutonOui)
val cx = view.width / 2
val cy = view.height / 2
val finalRadius = hypot(cx.toDouble(), cy.toDouble()).toFloat()
val anim = ViewAnimationUtils.createCircularReveal(view, cx, cy, 0f, finalRadius)
// make the view visible and start the animation
view.visibility = View.VISIBLE
anim.duration = 1500
anim.start()
}
我用这一行从另一个文件执行这个函数:
MainActivity().showButtons()
这是堆栈跟踪:
2020-06-01 12:55:02.783 22557-22557/com.example.yourmajesty E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.yourmajesty, PID: 22557
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference
at android.content.ContextWrapper.getApplicationInfo(ContextWrapper.java:163)
at android.view.ContextThemeWrapper.getTheme(ContextThemeWrapper.java:174)
at android.content.Context.obtainStyledAttributes(Context.java:738)
at androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:692)
at androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:659)
at androidx.appcompat.app.AppCompatDelegateImpl.findViewById(AppCompatDelegateImpl.java:479)
at androidx.appcompat.app.AppCompatActivity.findViewById(AppCompatActivity.java:214)
at com.example.yourmajesty.MainActivity.showButtons(MainActivity.kt:122)
at com.example.yourmajesty.Dialog.dialogChanger(Dialog.kt:26)
at com.example.yourmajesty.MainActivity$dialogBoxDiseappear$2.run(MainActivity.kt:190)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7695)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
提前致谢
解决方案
推荐阅读
- python - pyspark 中是否有任何方法可以从 url 获取大学的名称?
- asp.net-core - Google 身份验证适用于本地主机,但不适用于域
- flutter - 在 Flutter 中创建响应式联盟板
- python - 如何在 vs 代码中使用 sysargv 模块?
- protocol-buffers - 通过谷歌协议缓冲区反序列化数据时出错
- python - 如何从不同的 python 文件导入各种数据框?
- python - 为什么深度优先搜索时我的 for 循环没有中断
- azure - 将 Azure Logic App 与本地 SMTP 中继集成以发送电子邮件
- google-cloud-platform - Cloud Memorystore Redis CPU利用率高
- c# - 如果前景绑定到属性,我可以以某种方式为文本块的前景颜色设置动画吗?