Android 当我添加蓝牙按钮时,我的应用程序正在崩溃

Android 当我添加蓝牙按钮时,我的应用程序正在崩溃,android,button,bluetooth,null,Android,Button,Bluetooth,Null,我是安卓工作室的新手 我想通过蓝牙HC-06将数据从Arduino发送到android 我从AndroidStudio的模板(导航抽屉活动)开始编写代码。 起初一切正常,但当我想在代码中添加蓝牙按钮和帮助SetOnClickListener时,噩梦就开始了。 1.它的外观从此改变了 对这个。为了清楚起见:导航栏和其他工具消失了,取而代之的是只出现了主页片段。 2.当按下此片段上的蓝牙按钮时,我的应用程序关闭。 我尝试跟随logcat,但无法解决问题 请帮我提个建议 致意 p、 下面是我的Main

我是安卓工作室的新手 我想通过蓝牙HC-06将数据从Arduino发送到android 我从AndroidStudio的模板(导航抽屉活动)开始编写代码。 起初一切正常,但当我想在代码中添加蓝牙按钮和帮助SetOnClickListener时,噩梦就开始了。 1.它的外观从此改变了

对这个。为了清楚起见:导航栏和其他工具消失了,取而代之的是只出现了主页片段。 2.当按下此片段上的蓝牙按钮时,我的应用程序关闭。 我尝试跟随logcat,但无法解决问题

请帮我提个建议 致意 p、 下面是我的MainActivity.java文件

package com.example.myecg2;
导入android.content.Intent;
导入android.os.Bundle;
导入com.google.android.material.floatingactionbutton.floatingactionbutton;
导入com.google.android.material.snackbar.snackbar;
导入android.bluetooth.BluetoothAdapter;
导入android.bluetooth.bluetooth设备;
导入android.bluetooth.BluetoothSocket;
导入android.view.view;
导入androidx.annotation.NonNull;
导入androidx.annotation.Nullable;
导入androidx.lifecycle.Observer;
导入androidx.lifecycle.ViewModelProviders;
导入androidx.navigation.NavController;
导入androidx.navigation.navigation;
导入androidx.navigation.ui.AppBarConfiguration;
导入androidx.navigation.ui.NavigationUI;
导入com.google.android.material.navigation.NavigationView;
导入androidx.drawerlayout.widget.drawerlayout;
导入androidx.appcompat.app.appcompat活动;
导入androidx.appcompat.widget.Toolbar;
导入android.view.Menu;
导入android.view.ViewGroup;
导入android.widget.Button;
导入android.widget.TextView;
导入android.widget.Toast;
导入java.util.Set;
公共类MainActivity扩展了AppCompatActivity{
私有AppBarConfiguration mAppBarConfiguration;
私人TextView-Tekst;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar Toolbar=findviewbyd(R.id.Toolbar);
设置支持操作栏(工具栏);
FloatingActionButton fab=findViewById(R.id.fab);
fab.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Snackbar.make(查看“Savollaringiz bo'lsa Xat yozing”,Snackbar.LENGTH_LONG)
.setAction(“Action”,null).show();
}
});
抽屉布局抽屉=findViewById(R.id.抽屉布局);
NavigationView NavigationView=findViewById(R.id.nav_视图);
mAppBarConfiguration=新建AppBarConfiguration.Builder(
R.id.nav_主页,R.id.nav_画廊,R.id.nav_幻灯片,
R.id.nav_工具、R.id.nav_共享、R.id.nav_发送)
.setDrawerLayout(抽屉)
.build();
NavController NavController=Navigation.findNavController(这个,R.id.nav_主机_片段);
NavigationUI.setupActionBarWithNavController(此、navController、mAppBarConfiguration);
NavigationUI.setupWithNavController(navigationView,navController);
最终整数请求\启用\ BT=1;
setContentView(R.layout.fragment_home);
最终BluetoothAdapter btAdapter=BluetoothAdapter.getDefaultAdapter();
按钮按钮=findViewById(R.id.button6);
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
if(btAdapter==null){
Tekst.setText(“蓝牙不支持”);
返回;
}否则{
if(btAdapter.isEnabled()){
setText(“蓝牙目前正在设备发现过程中。”);
附加(“\n需要的设备是:”);
Set devices=btAdapter.getBondedDevices();
用于(蓝牙设备:设备){
Tekst.append(“\n设备”+设备.getName()+”,“+设备);
}
}否则{
Intent enablebintent=新意图(BluetoothAdapter.ACTION\u REQUEST\u ENABLE);
startActivityForResult(启用BTIntent、请求\启用\ BT);
}
}
}
}
);}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
@凌驾
公共布尔onSupportNavigateUp(){
NavController NavController=Navigation.findNavController(这个,R.id.nav_主机_片段);
返回NavigationUI.navigateUp(导航控制器,mAppBarConfiguration)
||super.onSupportNavigateUp();
}

}
Tekst
为空,即您从未实例化该变量

你的日志就在这里写着:

java.lang.NullPointerException: 
Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference 
at com.example.myecg2.MainActivity$2.onClick(MainActivity.java:75) 
at ...
它甚至还表示发生错误的类,
MainActivity
,方法名为它发生在
onClick
,以及错误的行
:75

在尝试访问
onCreate
变量(即第75行的访问)之前,您缺少在
onCreate
中实例化
Tekst
变量的
findViewById


旁注:

您可以调用
setContentView
两次。你不应该那样做。删除第二个

Java&Kotlin中的变量名应该以小写字母开头,以帮助您将它们与其他事物区分开来。将
Tekst
重命名为
Tekst
。这也是打字错误吗?也许它应该是
test
,帮助您调试的更好的名称应该是
testTextView

,但我在第38行私有类Tekst中创建了(abowe),如下所示:“私有TextView Tekst”;和