Android 未处理的异常:System.NullReferenceException:<;获取异常详细信息时超时>;发生
我使用的是visual studio 2019,在构建xamarin android应用程序时,它显示了以下错误-“未处理的异常:System.NullReferenceException:发生” 我看了其他有类似问题的问题,但没有任何效果 MainActivity.csAndroid 未处理的异常:System.NullReferenceException:<;获取异常详细信息时超时>;发生,android,visual-studio,xamarin,compiler-errors,Android,Visual Studio,Xamarin,Compiler Errors,我使用的是visual studio 2019,在构建xamarin android应用程序时,它显示了以下错误-“未处理的异常:System.NullReferenceException:发生” 我看了其他有类似问题的问题,但没有任何效果 MainActivity.cs using Android.App; using Android.OS; using Android.Support.V7.App; using Android.Runtime; using Android.Widget; u
using Android.App;
using Android.OS;
using Android.Support.V7.App;
using Android.Runtime;
using Android.Widget;
using App2;
using Android.Content;
namespace App1
{
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
EditText myUserName;
EditText myPass;
Button myLoginbtn;
Button signupBtn;
//variables for signup page
// prefix "s_" used for signup page variables
EditText s_username;
EditText s_pass;
EditText s_email;
EditText s_age;
Button s_signupBtn;
Android.App.AlertDialog.Builder alert;
DBHelperClass myDB;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.activity_main);
//fatching information from login page
myUserName = FindViewById<EditText>(Resource.Id.userNameID);
myPass = FindViewById<EditText>(Resource.Id.pass);
myLoginbtn = FindViewById<Button>(Resource.Id.button1);
signupBtn = FindViewById<Button>(Resource.Id.signup);
//fatching information from signup page
s_username = FindViewById<EditText>(Resource.Id.s_userNameID);
s_email = FindViewById<EditText>(Resource.Id.s_email);
s_age = FindViewById<EditText>(Resource.Id.s_age);
s_pass = FindViewById<EditText>(Resource.Id.s_pass);
s_signupBtn = FindViewById<Button>(Resource.Id.s_button1);
alert = new Android.App.AlertDialog.Builder(this);
myDB = new DBHelperClass(this); //create constructor
signupBtn.Click += delegate
{
SetContentView(Resource.Layout.signup);
//Intent newScreen = new Intent(this, typeof(Signuppage));
//StartActivity(newScreen);
};
myLoginbtn.Click += delegate
{
var value = myUserName.Text;
var value2 = myPass.Text;
System.Console.WriteLine("Username: ---- > " + value);
System.Console.WriteLine("Password: ---- > " + value2);
if (value.Trim().Equals("") || value.Length < 0 || value2.Trim().Equals("") || value2.Length < 0)
{
alert.SetTitle("Error");
alert.SetMessage("Please Enter Valid Data");
alert.SetPositiveButton("OK", alertOKButton);
alert.SetNegativeButton("Cancel", alertOKButton);
Dialog myDialog = alert.Create();
myDialog.Show();
}
else
{ // some value
//myDB.insertValue(1, value);
//myDB.selectMydata();
}
};
s_signupBtn.Click += delegate
{
var value5 = s_username.Text;
var value6 = s_email.Text;
var value7 = s_age.Text;
var value8 = s_pass.Text;
if (value5.Trim().Equals("") || value5.Length < 0 || value6.Trim().Equals("") ||
value6.Length < 0 || value7.Trim().Equals("") ||
value7.Length < 0 || value8.Trim().Equals("") ||
value8.Length < 0)
{
alert.SetTitle("Error");
alert.SetMessage("Please Enter Valid Data");
alert.SetPositiveButton("OK", alertOKButton);
alert.SetNegativeButton("Cancel", alertOKButton);
Dialog myDialog = alert.Create();
myDialog.Show();
}
else
{
//insert in database here
//order to insert (int id, string value_username, string value_email, string value_age, string value_pass)
myDB.InsertValue(1, value5, value6, value7, value8);
//System.Console.WriteLine(value,value2, value3, value4);
myDB.SelectMydata();
SetContentView(Resource.Layout.activity_main);
}
};
}
public void alertOKButton(object sender, Android.Content.DialogClickEventArgs e)
{
System.Console.WriteLine("OK Button Pressed");
}
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
{
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
}
signup.axml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
android:gravity="center"
android:orientation="vertical">
<!--
<ImageView
android:layout_height="90dp"
android:layout_width="150dp"
android:id="@+id/image1"
android:src="@drawable/pin"
/>-->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/userNameLblID"
android:text="Please enter your info"
android:textSize="24dp"
android:textAlignment="center"
android:textStyle="bold"
android:textColor="#333333"
android:layout_marginBottom="10dp"
android:layout_marginTop="0dp"
/>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="vertical">
<EditText
android:layout_width="250dp"
android:layout_height="50dp"
android:id="@+id/s_userNameID"
android:background="#dadee5"
android:textStyle="bold"
android:hint="Username"
android:layout_marginBottom="10dp"
/>
<EditText
android:layout_width="250dp"
android:layout_height="50dp"
android:id="@+id/s_email"
android:background="#dadee5"
android:textStyle="bold"
android:hint="Email address"
android:layout_marginBottom="10dp"
/>
<EditText
android:layout_width="250dp"
android:layout_height="50dp"
android:id="@+id/s_age"
android:background="#dadee5"
android:textStyle="bold"
android:hint="Age"
android:layout_marginBottom="10dp"
/>
<!-- Same as Input-->
<EditText
android:layout_width="250dp"
android:layout_height="50dp"
android:id="@+id/s_pass"
android:background="#dadee5"
android:textStyle="bold"
android:hint="Password"
/>
</LinearLayout>
<Button
android:layout_marginTop="10dp"
android:id="@+id/s_button1"
android:layout_width="250dp"
android:layout_height="50dp"
android:background="#E60023"
android:textColor="#FFFFFF"
android:textStyle="bold"
android:text="Sign UP" />
</LinearLayout>
activity_main.axml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
android:gravity="center"
android:orientation="vertical">
<!--
<ImageView
android:layout_height="90dp"
android:layout_width="150dp"
android:id="@+id/image1"
android:src="@drawable/pin"
/>-->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/userNameLblID"
android:text="Log in to see more"
android:textSize="24dp"
android:textAlignment="center"
android:textStyle="bold"
android:textColor="#333333"
android:layout_marginBottom="10dp"
android:layout_marginTop="0dp"
/>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="vertical">
<EditText
android:layout_width="250dp"
android:layout_height="50dp"
android:id="@+id/userNameID"
android:background="#dadee5"
android:textStyle="bold"
android:hint="Email or Phone number"
android:layout_marginBottom="10dp"
/>
<!-- Same as Input-->
<EditText
android:layout_width="250dp"
android:layout_height="50dp"
android:id="@+id/pass"
android:background="#dadee5"
android:textStyle="bold"
android:hint="Password"
/>
</LinearLayout>
<Button
android:layout_marginTop="10dp"
android:id="@+id/button1"
android:layout_width="250dp"
android:layout_height="50dp"
android:background="#E60023"
android:textColor="#FFFFFF"
android:textStyle="bold"
android:text="Log in" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text2"
android:text="OR"
android:textSize="18dp"
android:textAlignment="center"
android:textColor="#126eba"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
/>
<LinearLayout
android:layout_height="50dp"
android:layout_width="250dp"
android:orientation="horizontal"
android:background="#3b5998"
>
<!--
<ImageView
android:layout_height="45dp"
android:layout_width="40dp"
android:gravity="center"
android:id="@+id/image1"
android:src="@drawable/fb"
android:layout_marginLeft="5dp"
android:layout_marginTop="2dp"
/>-->
<TextView
android:layout_marginTop="0dp"
android:id="@+id/fbbtn"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:textColor="#FFFFFF"
android:text="Continue with Facebook"
android:gravity="center"
android:layout_marginLeft="20dp"
android:textSize="16dp"
/>
</LinearLayout>
<LinearLayout
android:layout_height="50dp"
android:layout_width="250dp"
android:orientation="horizontal"
android:background="#4885ed"
android:layout_marginTop="5dp"
>
<!--
<ImageView
android:layout_height="45dp"
android:layout_width="40dp"
android:gravity="center"
android:id="@+id/image2"
android:src="@drawable/google"
android:layout_marginLeft="5dp"
android:layout_marginTop="2dp"
/>-->
<TextView
android:layout_marginTop="0dp"
android:id="@+id/googlebtn"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:textColor="#FFFFFF"
android:text="Continue with Google"
android:gravity="center"
android:layout_marginLeft="20dp"
android:textSize="16dp"
/>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text3"
android:text="Forgot your password?"
android:textSize="10dp"
android:textAlignment="center"
android:textColor="#717171"
android:layout_marginBottom="0dp"
android:layout_marginTop="10dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text4"
android:text="Are you a business? Get started here"
android:textSize="10dp"
android:textAlignment="center"
android:textColor="#717171"
android:layout_marginBottom="10dp"
/>
<View
android:layout_width="70dp"
android:layout_height="1dp"
android:background="@android:color/darker_gray"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="15dp"
android:orientation="horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text5"
android:text="Not on Pintrest yet?"
android:textSize="10dp"
android:textColor="#717171"
/>
<Button
android:id="@+id/signup"
android:layout_width="50dp"
android:layout_height="15dp"
android:textSize="10dp"
android:background="#ffffff"
android:textColor="#717171"
android:textStyle="bold"
android:text="Sign Up" />
</LinearLayout>
</LinearLayout>
有4个文件,这些是错误截图,谢谢
这是解决方案:)谢谢
使用Android.App;
使用Android.OS;
使用Android.Support.V7.App;
使用Android.Runtime;
使用Android.Widget;
使用App2;
使用Android.Content;
名称空间App2
{
[活动(Label=“@string/app_name”,Theme=“@style/AppTheme”,MainLauncher=true)]
公共类MainActivity:AppCompativeActivity
{
编辑文本我的用户名;
编辑文本myPass;
按钮myLoginbtn;
按钮标志;
//注册页的变量
//用于注册页面变量的前缀“s”
编辑文本s_用户名;
编辑文本s_pass;
编辑文本s_电子邮件;
编辑文本s_时代;
按钮s_signuptn;
Android.App.AlertDialog.Builder alert;
DBHelperClass myDB;
创建时受保护的覆盖无效(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
//从“主”布局资源设置视图
SetContentView(Resource.Layout.activity_main);
//从登录页面查找信息
myUserName=findviewbyd(Resource.Id.userNameID);
myPass=findviewbyd(Resource.Id.pass);
myLoginbtn=findviewbyd(Resource.Id.button1);
signupBtn=findviewbyd(Resource.Id.signup);
alert=新建Android.App.AlertDialog.Builder(此);
myDB=new DBHelperClass(this);//创建构造函数
signupBtn.Click+=委托
{
SetContentView(Resource.Layout.signup);
//Intent newScreen=新Intent(this,typeof(DBHelperClass));
//StartActivity(新闻屏幕);
//从注册页面获取信息
s_username=findviewbyd(Resource.Id.s_userNameID);
s_email=findviewbyd(Resource.Id.s_email);
s_age=FindViewById(Resource.Id.s_age);
s_pass=findviewbyd(Resource.Id.s_pass);
s_signupBtn=findviewbyd(Resource.Id.s_按钮1);
s_signupBtn.Click+=委托
{
var value5=s_username.Text;
var value6=s_email.Text;
var value7=s_age.Text;
var value8=s_pass.Text;
如果(value5.Trim()等于(“”)| | value5.Length<0 | | value6.Trim()等于(“”)||
值6.长度<0 | |值7.修剪().等于(“”)||
值7.长度<0 | |值8.修剪().等于(“”)||
值8.长度<0)
{
警报。设置标题(“错误”);
alert.SetMessage(“请输入有效数据”);
alert.SetPositiveButton(“确定”,alertOKButton);
alert.SetNegativeButton(“取消”,alertOKButton);
Dialog myDialog=alert.Create();
myDialog.Show();
}
其他的
{
//在这里插入数据库
//插入顺序(整数id、字符串值\用户名、字符串值\电子邮件、字符串值\年龄、字符串值\密码)
myDB.InsertValue(1,值5,值6,值7,值8);
//System.Console.WriteLine(值、值2、值3、值4);
myDB.SelectMydata();
//SetContentView(Resource.Layout.activity_main);
意向新闻屏幕=新意向(此,类型为(主活动));
StartActivity(新闻屏幕);
}
};
};
myLoginbtn.单击+=委托
{
var值=myUserName.Text;
var value2=myPass.Text;
System.Console.WriteLine(“用户名:-->”+值);
System.Console.WriteLine(“密码:-->”+value2);
如果(value.Trim()等于(“”| | value.Length<0 | | value2.Trim()等于(“”| | value2.Length<0)
{
警报。设置标题(“错误”);
alert.SetMessage(“请输入有效数据”);
alert.SetPositiveButton(“确定”,alertOKButton);
alert.SetNegativeButton(“取消”,alertOKButton);
Dialog myDialog=alert.Create();
myDialog.Show();
}
其他的
{//有价值吗
//myDB.insertValue(1,value);
myDB.SelectMydata();
}
};
}
public void alertOKButton(对象发送者,Android.Content.DialogClickEventArgs e)
{
系统控制台写入线(“按下确定按钮”);
}
public override void OnRequestPermissionsResult(int-requestCode,string[]permissions,[GeneratedEnum]Android.Content.PM.Permission[]grantResults)
{
//Xamarin.Essentials.Platform.OnRequestPermissionsResult(请求代码、权限、GrantResult);
base.OnRequestPermissionsResult(请求代码、权限、GrantResult);
}
}
}
您显然遇到了一个空引用异常
-查看详细信息以查看堆栈跟踪我刚刚开始构建移动应用程序,这个错误给了我很多时间,我该如何修复它?您
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
android:gravity="center"
android:orientation="vertical">
<!--
<ImageView
android:layout_height="90dp"
android:layout_width="150dp"
android:id="@+id/image1"
android:src="@drawable/pin"
/>-->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/userNameLblID"
android:text="Log in to see more"
android:textSize="24dp"
android:textAlignment="center"
android:textStyle="bold"
android:textColor="#333333"
android:layout_marginBottom="10dp"
android:layout_marginTop="0dp"
/>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="vertical">
<EditText
android:layout_width="250dp"
android:layout_height="50dp"
android:id="@+id/userNameID"
android:background="#dadee5"
android:textStyle="bold"
android:hint="Email or Phone number"
android:layout_marginBottom="10dp"
/>
<!-- Same as Input-->
<EditText
android:layout_width="250dp"
android:layout_height="50dp"
android:id="@+id/pass"
android:background="#dadee5"
android:textStyle="bold"
android:hint="Password"
/>
</LinearLayout>
<Button
android:layout_marginTop="10dp"
android:id="@+id/button1"
android:layout_width="250dp"
android:layout_height="50dp"
android:background="#E60023"
android:textColor="#FFFFFF"
android:textStyle="bold"
android:text="Log in" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text2"
android:text="OR"
android:textSize="18dp"
android:textAlignment="center"
android:textColor="#126eba"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
/>
<LinearLayout
android:layout_height="50dp"
android:layout_width="250dp"
android:orientation="horizontal"
android:background="#3b5998"
>
<!--
<ImageView
android:layout_height="45dp"
android:layout_width="40dp"
android:gravity="center"
android:id="@+id/image1"
android:src="@drawable/fb"
android:layout_marginLeft="5dp"
android:layout_marginTop="2dp"
/>-->
<TextView
android:layout_marginTop="0dp"
android:id="@+id/fbbtn"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:textColor="#FFFFFF"
android:text="Continue with Facebook"
android:gravity="center"
android:layout_marginLeft="20dp"
android:textSize="16dp"
/>
</LinearLayout>
<LinearLayout
android:layout_height="50dp"
android:layout_width="250dp"
android:orientation="horizontal"
android:background="#4885ed"
android:layout_marginTop="5dp"
>
<!--
<ImageView
android:layout_height="45dp"
android:layout_width="40dp"
android:gravity="center"
android:id="@+id/image2"
android:src="@drawable/google"
android:layout_marginLeft="5dp"
android:layout_marginTop="2dp"
/>-->
<TextView
android:layout_marginTop="0dp"
android:id="@+id/googlebtn"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:textColor="#FFFFFF"
android:text="Continue with Google"
android:gravity="center"
android:layout_marginLeft="20dp"
android:textSize="16dp"
/>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text3"
android:text="Forgot your password?"
android:textSize="10dp"
android:textAlignment="center"
android:textColor="#717171"
android:layout_marginBottom="0dp"
android:layout_marginTop="10dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text4"
android:text="Are you a business? Get started here"
android:textSize="10dp"
android:textAlignment="center"
android:textColor="#717171"
android:layout_marginBottom="10dp"
/>
<View
android:layout_width="70dp"
android:layout_height="1dp"
android:background="@android:color/darker_gray"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="15dp"
android:orientation="horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text5"
android:text="Not on Pintrest yet?"
android:textSize="10dp"
android:textColor="#717171"
/>
<Button
android:id="@+id/signup"
android:layout_width="50dp"
android:layout_height="15dp"
android:textSize="10dp"
android:background="#ffffff"
android:textColor="#717171"
android:textStyle="bold"
android:text="Sign Up" />
</LinearLayout>
</LinearLayout>
using Android.App;
using Android.OS;
using Android.Support.V7.App;
using Android.Runtime;
using Android.Widget;
using App2;
using Android.Content;
namespace App2
{
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
EditText myUserName;
EditText myPass;
Button myLoginbtn;
Button signupBtn;
//variables for signup page
// prefix "s_" used for signup page variables
EditText s_username;
EditText s_pass;
EditText s_email;
EditText s_age;
Button s_signupBtn;
Android.App.AlertDialog.Builder alert;
DBHelperClass myDB;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.activity_main);
//fatching information from login page
myUserName = FindViewById<EditText>(Resource.Id.userNameID);
myPass = FindViewById<EditText>(Resource.Id.pass);
myLoginbtn = FindViewById<Button>(Resource.Id.button1);
signupBtn = FindViewById<Button>(Resource.Id.signup);
alert = new Android.App.AlertDialog.Builder(this);
myDB = new DBHelperClass(this); //create constructor
signupBtn.Click += delegate
{
SetContentView(Resource.Layout.signup);
// Intent newScreen = new Intent(this, typeof(DBHelperClass));
// StartActivity(newScreen);
//fatching information from signup page
s_username = FindViewById<EditText>(Resource.Id.s_userNameID);
s_email = FindViewById<EditText>(Resource.Id.s_email);
s_age = FindViewById<EditText>(Resource.Id.s_age);
s_pass = FindViewById<EditText>(Resource.Id.s_pass);
s_signupBtn = FindViewById<Button>(Resource.Id.s_button1);
s_signupBtn.Click += delegate
{
var value5 = s_username.Text;
var value6 = s_email.Text;
var value7 = s_age.Text;
var value8 = s_pass.Text;
if (value5.Trim().Equals("") || value5.Length < 0 || value6.Trim().Equals("") ||
value6.Length < 0 || value7.Trim().Equals("") ||
value7.Length < 0 || value8.Trim().Equals("") ||
value8.Length < 0)
{
alert.SetTitle("Error");
alert.SetMessage("Please Enter Valid Data");
alert.SetPositiveButton("OK", alertOKButton);
alert.SetNegativeButton("Cancel", alertOKButton);
Dialog myDialog = alert.Create();
myDialog.Show();
}
else
{
//insert in database here
//order to insert (int id, string value_username, string value_email, string value_age, string value_pass)
myDB.InsertValue(1, value5, value6, value7, value8);
//System.Console.WriteLine(value,value2, value3, value4);
myDB.SelectMydata();
//SetContentView(Resource.Layout.activity_main);
Intent newScreen = new Intent(this, typeof(MainActivity));
StartActivity(newScreen);
}
};
};
myLoginbtn.Click += delegate
{
var value = myUserName.Text;
var value2 = myPass.Text;
System.Console.WriteLine("Username: ---- > " + value);
System.Console.WriteLine("Password: ---- > " + value2);
if (value.Trim().Equals("") || value.Length < 0 || value2.Trim().Equals("") || value2.Length < 0)
{
alert.SetTitle("Error");
alert.SetMessage("Please Enter Valid Data");
alert.SetPositiveButton("OK", alertOKButton);
alert.SetNegativeButton("Cancel", alertOKButton);
Dialog myDialog = alert.Create();
myDialog.Show();
}
else
{ // some value
//myDB.insertValue(1, value);
myDB.SelectMydata();
}
};
}
public void alertOKButton(object sender, Android.Content.DialogClickEventArgs e)
{
System.Console.WriteLine("OK Button Pressed");
}
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
{
//Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
}