简体   繁体   中英

Unable to instantiate activity ComponentInfo Android Studio Error

I am newbie ... I ve been trying to create a simple program but it keeps failing so I need some help with this error... what is wrong ?

the error i get is :

08-20 20:08:59.422 6192-6192/com.example.raduc.anew E/AndroidRuntime: FATAL EXCEPTION: main

    Process: com.example.raduc.anew, PID: 6192
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.raduc.anew/com.example.raduc.anew.MainActivity}: java.lang.NullPointerException
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2297)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2441)
        at android.app.ActivityThread.access$900(ActivityThread.java:151)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
        at android.os.Handler.dispatchMessage(Handler.java:110)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:5345)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644)
        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 com.example.raduc.anew.MainActivity.<init>(MainActivity.java:17)
        at java.lang.Class.newInstanceImpl(Native Method)
        at java.lang.Class.newInstance(Class.java:1215)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2288)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2441) 
        at android.app.ActivityThread.access$900(ActivityThread.java:151) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354) 
        at android.os.Handler.dispatchMessage(Handler.java:110) 
        at android.os.Looper.loop(Looper.java:193) 
        at android.app.ActivityThread.main(ActivityThread.java:5345) 
        at java.lang.reflect.Method.invokeNative(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:515) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644) 
        at dalvik.system.NativeStart.main(Native Method) 
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.raduc.anew/

the activity:

package com.example.raduc.anew;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {

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



    EditText nr1 = (EditText) findViewById(R.id.nr);
}

and my layout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.raduc.anew.MainActivity">



    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/nr" />

</RelativeLayout>

and manifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.raduc.anew">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

It's just a simple try to read someth from a EditText object but I dont't know why I get this error only when I set up a variable...

I

EditText nr1 = (EditText) findViewById(R.id.nr);

That has to be inside onCreate. At init time, the context isn't set up so it won't work (a ontent view hasn't been set so at best it would return null, but the Activity isn't a valid context until onCreate is called so you can get all sorts of problems by using it too early).

请把您的EditText定义放入OnCreate方法中,并在开始之前喝点茶:)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM