"App keeps stopping"弹窗报错java.lang.RuntimeExcpetion
"App keeps stopping" pop ups and give the error java.lang.RuntimeExcpetion
每当我 运行 模拟器上的项目时,它都会给我错误 App keeps stopping and I can't 运行 the app。调试代码时没有错误。所以我检查了 Logcat 然后它给了我错误 java.lang.RuntimeException。我不知道错误在哪里,或者根本就是代码问题?请有人帮助我...
主要Activity代码
class MainActivity1 : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val circularProgressBar: CircularProgressBar = findViewById(R.id.circularProgressBar)
circularProgressBar.setProgressWithAnimation(65f,1000)
findViewById<SeekBar>(R.id.seekBarProgress).onProgressChanged{
circularProgressBar.progress = it
}
}
private fun SeekBar.onProgressChanged(onProgressChanged: (Float)-> Unit){
setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar?, progress : Int,
fromUser: Boolean) {
onProgressChanged(progress.toFloat())
}
override fun onStartTrackingTouch(seekBar: SeekBar?) {
}
override fun onStopTrackingTouch(seekBar: SeekBar?) {
}
})
}
}
Logcat
Image of the Logcat
您正在对空对象调用 setProgressWithAnimation
。我建议你不要使用 findViewById
。使用 ViewBinding 或至少使用 kotlinx。
这是我的主要 activity xml 文件。 (不知道有没有帮助)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.anadroid.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity1"
android:background="@color/white"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="@drawable/bg_header"
android:orientation="horizontal"
android:layout_marginBottom="20dp"
>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fontFamily="@font/poppins_semibold"
android:text="AkiKomi"
android:gravity="center_horizontal"
android:layout_marginStart="15dp"
android:textColor="@color/white"
android:textStyle="bold"
android:textSize="25sp"/>
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/my_recycler"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
每当我 运行 模拟器上的项目时,它都会给我错误 App keeps stopping and I can't 运行 the app。调试代码时没有错误。所以我检查了 Logcat 然后它给了我错误 java.lang.RuntimeException。我不知道错误在哪里,或者根本就是代码问题?请有人帮助我...
主要Activity代码
class MainActivity1 : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val circularProgressBar: CircularProgressBar = findViewById(R.id.circularProgressBar) circularProgressBar.setProgressWithAnimation(65f,1000) findViewById<SeekBar>(R.id.seekBarProgress).onProgressChanged{ circularProgressBar.progress = it } } private fun SeekBar.onProgressChanged(onProgressChanged: (Float)-> Unit){ setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { override fun onProgressChanged(seekBar: SeekBar?, progress : Int, fromUser: Boolean) { onProgressChanged(progress.toFloat()) } override fun onStartTrackingTouch(seekBar: SeekBar?) { } override fun onStopTrackingTouch(seekBar: SeekBar?) { } }) }
}
Logcat Image of the Logcat
您正在对空对象调用 setProgressWithAnimation
。我建议你不要使用 findViewById
。使用 ViewBinding 或至少使用 kotlinx。
这是我的主要 activity xml 文件。 (不知道有没有帮助)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.anadroid.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity1"
android:background="@color/white"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="@drawable/bg_header"
android:orientation="horizontal"
android:layout_marginBottom="20dp"
>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fontFamily="@font/poppins_semibold"
android:text="AkiKomi"
android:gravity="center_horizontal"
android:layout_marginStart="15dp"
android:textColor="@color/white"
android:textStyle="bold"
android:textSize="25sp"/>
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/my_recycler"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>