java - java.lang.NullPointerException:尝试在空对象上调用虚拟方法 'android.view.View android.view.View.findViewById(int)'
问题描述
为什么我会收到这个错误?这导致我的应用程序崩溃。每次我在我的设备上测试我的应用程序时,logcat 都会显示该错误,我不知道为什么。我对什么是空指针异常有一个合理的理解,并且我已经彻底搜索了与我的类似的问题。我尝试以多种方式重新格式化点击监听器,确保我有正确的视图 ID 等。这是我的代码。
public class GridActivity extends AppCompatActivity {
Button dijkstra;
Button astar;
GridView grid;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_grid);
dijkstra = findViewById(R.id.dijkstra);
astar = astar.findViewById(R.id.astar);
grid = astar.findViewById(R.id.grid);
dijkstra.setOnClickListener(new View.OnClickListener( ) {
@Override
public void onClick(View v) {
GridViewe geoView = new GridViewe(GridActivity.this);
geoView.Dijkstra( );
}
});
astar.setOnClickListener(new View.OnClickListener( ) {
@Override
public void onClick(View v) {
GridViewe geoView = new GridViewe(GridActivity.this);
geoView.Astar( );
}
});
}
public void setContentView(int activity_grid) {
}
@Override
public void onStop() {
GridViewe geoView = new GridViewe(GridActivity.this);
if(geoView.dijkstrathread.getStatus()== AsyncTask.Status.RUNNING)
geoView.dijkstrathread.cancel(true);
if(geoView.astarthread.getStatus()==AsyncTask.Status.RUNNING){
geoView.astarthread.cancel(true);
}
super.onStop();
}
}
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".GridActivity">
<GridView
android:id="@+id/grid"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<Button
android:id="@+id/dijkstra"
android:layout_width="63dp"
android:layout_height="35dp"
android:layout_weight="1"
android:text="DIJKSTRA"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/astar"
android:layout_width="106dp"
android:layout_height="27dp"
android:layout_weight="1"
android:text="A* (A star)"
tools:layout_editor_absoluteX="168dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
解决方案
推荐阅读
- php - 用户在 php/html 中输入多个系列作为 x 和 y
- c++11 - 无法插入和打印出链表
- linux - 如何从 .ipa 包中读取或捕获特定参数
- ruby-on-rails-4 - 如果 config.eager_load = false,则获取错误未初始化常量 NHLSDecorator
- java - 如何更正这个到目前为止只引发异常但我也想返回一个对象的函数?
- algorithm - 可以使用背包问题解决方法(可变大小的背包?)来解决这个问题
- python-3.x - Python3:如何打印列表名称是另一个列表中的元素的列表元素?
- windows - 如何简化 cmd 终端中的重复命令?
- java - 是否可以使用 createChooser 但实际上还没有开始意图?
- node.js - 如何在 Angular 中为嵌套的 JSON 对象使用搜索过滤器?