Androidruntime:致命异常';s

Androidruntime:致命异常';s,android,android-layout,android-studio,nullpointerexception,Android,Android Layout,Android Studio,Nullpointerexception,我已经在AndroidStudio 1.5版中编写了我的项目,过了一段时间,我在2.1.2版中编写了相同的项目(主要是从旧项目中复制粘贴了我的java方法),现在它向我显示了致命的异常16错误,我应该做些什么来消除这些错误。 以下是例外情况 FATAL EXCEPTION: main java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.imtiaz.recognizer/co

我已经在AndroidStudio 1.5版中编写了我的项目,过了一段时间,我在2.1.2版中编写了相同的项目(主要是从旧项目中复制粘贴了我的java方法),现在它向我显示了致命的异常16错误,我应该做些什么来消除这些错误。 以下是例外情况

FATAL EXCEPTION: main
  java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.imtiaz.recognizer/com.example.imtiaz.recognizer.MainActivity}:java.lang.NullPointerException
  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2232)
  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2362)
  at android.app.ActivityThread.access$700(ActivityThread.java:168)
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1329)
  at android.os.Handler.dispatchMessage(Handler.java:99)
  at android.os.Looper.loop(Looper.java:177)
  at android.app.ActivityThread.main(ActivityThread.java:5493)
  at java.lang.reflect.Method.invokeNative(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:525)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1225)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1041)
  at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
  at android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.java:116)
  at android.support.v7.app.AppCompatDelegateImplV9.<init>(AppCompatDelegateImplV9.java:147)
  at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:27)
  at android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.java:50)
  at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:201)
  at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:181)
  at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:521)
  at android.support.v7.app.AppCompatActivity.findViewById(AppCompatActivity.java:190)
  at java.lang.Class.newInstanceImpl(Native Method)
  at java.lang.Class.newInstance(Class.java:1130)
  at android.app.Instrumentation.newActivity(Instrumentation.java:1078)
  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2223)
  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2362)
  at android.app.ActivityThread.access$700(ActivityThread.java:168)
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1329)
  at android.os.Handler.dispatchMessage(Handler.java:99)
  at android.os.Looper.loop(Looper.java:177)
  at android.app.ActivityThread.main(ActivityThread.java:5493)
  at java.lang.reflect.Method.invokeNative(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:525)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1225)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1041)
  at dalvik.system.NativeStart.main(Native Method)
致命异常:main
java.lang.RuntimeException:无法实例化活动组件信息{com.example.imtiaz.recognizer/com.example.imtiaz.recognizer.MainActivity}:java.lang.NullPointerException
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2232)上
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2362)上
在android.app.ActivityThread.access$700(ActivityThread.java:168)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1329)
位于android.os.Handler.dispatchMessage(Handler.java:99)
位于android.os.Looper.loop(Looper.java:177)
位于android.app.ActivityThread.main(ActivityThread.java:5493)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:525)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1225)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1041)
在dalvik.system.NativeStart.main(本机方法)
原因:java.lang.NullPointerException
位于android.support.v7.app.AppCompateDelegateImplbase。(appCompateDelegateImplbase.java:116)
在android.support.v7.app.AppCompateDelegateImplv9。(AppCompateDelegateImplv9.java:147)
在android.support.v7.app.AppCompateDelegateImplv11。(AppCompateDelegateImplv11.java:27)
在android.support.v7.app.AppCompateDelegateImplv14。(AppCompateDelegateImplv14.java:50)
在android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:201)中
在android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:181)中
位于android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:521)
位于android.support.v7.app.AppCompatActivity.findViewById(AppCompatActivity.java:190)
位于java.lang.Class.newInstanceImpl(本机方法)
位于java.lang.Class.newInstance(Class.java:1130)
位于android.app.Instrumentation.newActivity(Instrumentation.java:1078)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2223)上
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2362)上
在android.app.ActivityThread.access$700(ActivityThread.java:168)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1329)
位于android.os.Handler.dispatchMessage(Handler.java:99)
位于android.os.Looper.loop(Looper.java:177)
位于android.app.ActivityThread.main(ActivityThread.java:5493)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:525)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1225)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1041)
在dalvik.system.NativeStart.main(本机方法)
。。。
位于android.support.v7.app.AppCompatActivity.findViewById(AppCompatActivity.java:190)
位于com.example.imtiaz.recognizer.MainActivity。(MainActivity.java:26)
...
似乎在
活动
子类的构造函数中调用了
findViewById()
。你不能这样做。您必须改为使用
onCreate()
方法进行所有初始化。我强烈建议你了解这一点。要编写任何Android应用程序,必须正确使用此选项。

。。。
位于android.support.v7.app.AppCompatActivity.findViewById(AppCompatActivity.java:190)
位于com.example.imtiaz.recognizer.MainActivity。(MainActivity.java:26)
...

似乎在
活动
子类的构造函数中调用了
findViewById()
。你不能这样做。您必须改为使用
onCreate()
方法进行所有初始化。我强烈建议你了解这一点。为了编写任何Android应用程序,您必须正确地使用它。

要修复该错误,您必须提及
onCreate
方法本身以及类中的所有
活动
组件,如下所示

public class LoginActivity extends AppCompatActivity {
private TextView ForgetPass;
private Button Login,Signup;
private EditText UserName,Password;


onCreate 
{
    Login = (Button)findViewById(R.id.login);
    Signup = (Button)findViewById(R.id.signup);
    ForgetPass = (TextView)findViewById(R.id.forgetPass);
    UserName = (EditText)findViewById(R.id.userName);
    Password = (EditText)findViewById(R.id.password);

    helper = new DatabaseHelper(this);

    Signup.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent intent1 = new Intent(LoginActivity.this,SignUpActivity.class);
            startActivity(intent1);
        }
    });
}
}

要修复这个bug,您必须提到
onCreate
方法本身以及类中的所有
activity
组件,如下所示

public class LoginActivity extends AppCompatActivity {
private TextView ForgetPass;
private Button Login,Signup;
private EditText UserName,Password;


onCreate 
{
    Login = (Button)findViewById(R.id.login);
    Signup = (Button)findViewById(R.id.signup);
    ForgetPass = (TextView)findViewById(R.id.forgetPass);
    UserName = (EditText)findViewById(R.id.userName);
    Password = (EditText)findViewById(R.id.password);

    helper = new DatabaseHelper(this);

    Signup.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent intent1 = new Intent(LoginActivity.this,SignUpActivity.class);
            startActivity(intent1);
        }
    });
}
}

在com.example.imtiaz.recognizer.MainActivity.(MainActivity.java:26)
MainActivity.java的第26行是什么?也可以发布构造函数的其余部分。在OnCreate()之前,您可能已经为一个或多个字段调用了findviewbyd()。在OnCreate()中使用它们。是的,我在Activity的子类中意外地只初始化了一个字段。重建项目,我将更新问题。
在com.example.imtiaz.recognizer.MainActivity.(MainActivity.java:26)
MainActivity.java的第26行是什么?也可以发布构造函数的其余部分。在OnCreate()之前,您可能已经为一个或多个字段调用了findviewbyd()。在OnCreate()中使用它们。是的,我在Activity的子类中意外地只初始化了一个字段。正在重建项目,我将更新问题。我没有在“我的活动”的子类中调用findViewById()。@ABi您发布的堆栈跟踪表明不是这样。请用
MainActivity
的构造函数的代码编辑您的问题,并指出第26行的位置。我的回答是的,我对一个字段使用了findViewById()。@ABi这是不允许的,因为调用构造函数时没有创建任何视图。请参阅我提供的有关活动生命周期的链接。谢谢,我的应用程序正在运行,但在第二次活动中单击“事件/委托”时停止,我想这可能是因为进度条的原因。我将在早上更新我的代码。我没有在我的活动的子类中调用findViewById()。@ABi您发布的堆栈跟踪表明不是这样。请用
MainActivity
的构造函数的代码编辑您的问题,并指出第26行的位置。我的道歉