Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android java.lang.RuntimeException:无法实例化活动组件信息。。。java.lang.NullPointerException_Android_Nullpointerexception - Fatal编程技术网

Android java.lang.RuntimeException:无法实例化活动组件信息。。。java.lang.NullPointerException

Android java.lang.RuntimeException:无法实例化活动组件信息。。。java.lang.NullPointerException,android,nullpointerexception,Android,Nullpointerexception,由于某些原因,每次尝试启动应用程序时,我都会遇到以下错误: Unable to instantiate activity ComponentInfo{com.example.lifeahead/com.example.lifeahead.MainActivity}:java.lang.NullPointerException 我检查了清单文件,所有活动都已添加 启动应用程序时,我使用的唯一方法是: private void logIn(){ Button logIn = (Button

由于某些原因,每次尝试启动应用程序时,我都会遇到以下错误:

Unable to instantiate activity ComponentInfo{com.example.lifeahead/com.example.lifeahead.MainActivity}:java.lang.NullPointerException
我检查了清单文件,所有活动都已添加

启动应用程序时,我使用的唯一方法是:

private void logIn(){
    Button logIn = (Button) findViewById(R.id.login);
    logIn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent loginIntent = new Intent(MainActivity.this, HomeActivity.class);
            loginIntent.putExtra("cmUN", cmUN);
            loginIntent.putExtra("cmPW", cmPW);
            startActivity(loginIntent);
        }
    });
}
以下是onCreate:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment()).commit();
    }

    logIn();
}
完整日志:

E

/AndroidRuntime(1607):致命异常:main
E/AndroidRuntime(1607):进程:com.example.lifeaward,PID:1607
E/AndroidRuntime(1607):java.lang.RuntimeException:无法实例化活动组件信息{com.example.lifeaward/com.example.lifeaward.MainActivity}:java.lang.NullPointerException
E/AndroidRuntime(1607):位于android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2121)
E/AndroidRuntime(1607):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
E/AndroidRuntime(1607):位于android.app.ActivityThread.access$800(ActivityThread.java:135)
E/AndroidRuntime(1607):位于android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
E/AndroidRuntime(1607):位于android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(1607):位于android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime(1607):位于android.app.ActivityThread.main(ActivityThread.java:5017)
E/AndroidRuntime(1607):位于java.lang.reflect.Method.Invokenactive(本机方法)
E/AndroidRuntime(1607):位于java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime(1607):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
E/AndroidRuntime(1607):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
E/AndroidRuntime(1607):位于dalvik.system.NativeStart.main(本机方法)
E/AndroidRuntime(1607):由以下原因引起:java.lang.NullPointerException
E/AndroidRuntime(1607):位于android.app.Activity.findviewbyd(Activity.java:1884)
E/AndroidRuntime(1607):位于com.example.lifeaward.MainActivity。(MainActivity.java:22)
E/AndroidRuntime(1607):位于java.lang.Class.newInstanceImpl(本机方法)
E/AndroidRuntime(1607):位于java.lang.Class.newInstance(Class.java:1208)
E/AndroidRuntime(1607):在android.app.Instrumentation.newActivity(Instrumentation.java:1061)上
E/AndroidRuntime(1607):位于android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2112)
E/AndroidRuntime(1607):。。。还有11个

我感谢所有能得到的帮助

stacktrace告诉你

  Button logIn = (Button) findViewById(R.id.login);

findViewById
返回的对象为空,因为您唯一的方法是
logIn()
findViewById
返回null的唯一原因是,您正在查找不属于当前活动的视图层次结构的视图

您在活动获取窗口之前调用了
findViewById()
。您应该在
setContentView(R.layout.activity\u main)之后调用
findViewById()
。 我可以看到您在后面调用它,但我没有看到整个MainActivity.java。我相信你在之前的某个地方放了另一个
findViewById()


检查
com.example.lifehead.MainActivity
中的第22行。您的代码在那里失败。

也许您使用了片段,您的问题在布局中得到了解决。。。 见:


将android:name重命名为新的包名

按钮登录=(按钮)findViewById(R.id.logIn)


此错误主要是由于onCreate()上的声明、初始化在外部完成所致。要么在onCreate()内部声明并初始化,要么在onCreate()外部声明并通过调用相同的onCreate()内部方法进行初始化。

发布完整的StackTrace和活动代码,而不仅仅是函数,你在哪里调用那个函数?或者这个方法以前被调用过onCreate@GuillermoMerino确实如此,但如果您以前调用过它,它仍然不会成为活动视图层次结构的一部分。
  Button logIn = (Button) findViewById(R.id.login);
<fragment ... android:name="your.package.activity" ... />