Java 严重异常/无法在Android中实例化错误
请看一下下面的代码 活动\u main.xmlJava 严重异常/无法在Android中实例化错误,java,android,Java,Android,请看一下下面的代码 活动\u main.xml <LinearLayout 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" > <Edit
<LinearLayout 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" >
<EditText
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
当我运行这个应用程序时,我得到以下错误
10-27 19:05:46.487: D/AndroidRuntime(339): Shutting down VM
10-27 19:05:46.487: W/dalvikvm(339): threadid=1: thread exiting with uncaught exception (group=0x40015560)
10-27 19:05:46.527: E/AndroidRuntime(339): FATAL EXCEPTION: main
10-27 19:05:46.527: E/AndroidRuntime(339): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.textbox/com.example.textbox.MainActivity}: java.lang.NullPointerException
10-27 19:05:46.527: E/AndroidRuntime(339): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
10-27 19:05:46.527: E/AndroidRuntime(339): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
10-27 19:05:46.527: E/AndroidRuntime(339): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
10-27 19:05:46.527: E/AndroidRuntime(339): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
10-27 19:05:46.527: E/AndroidRuntime(339): at android.os.Handler.dispatchMessage(Handler.java:99)
10-27 19:05:46.527: E/AndroidRuntime(339): at android.os.Looper.loop(Looper.java:123)
10-27 19:05:46.527: E/AndroidRuntime(339): at android.app.ActivityThread.main(ActivityThread.java:3683)
10-27 19:05:46.527: E/AndroidRuntime(339): at java.lang.reflect.Method.invokeNative(Native Method)
10-27 19:05:46.527: E/AndroidRuntime(339): at java.lang.reflect.Method.invoke(Method.java:507)
10-27 19:05:46.527: E/AndroidRuntime(339): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-27 19:05:46.527: E/AndroidRuntime(339): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-27 19:05:46.527: E/AndroidRuntime(339): at dalvik.system.NativeStart.main(Native Method)
10-27 19:05:46.527: E/AndroidRuntime(339): Caused by: java.lang.NullPointerException
10-27 19:05:46.527: E/AndroidRuntime(339): at android.app.Activity.findViewById(Activity.java:1647)
10-27 19:05:46.527: E/AndroidRuntime(339): at com.example.textbox.MainActivity.<init>(MainActivity.java:15)
10-27 19:05:46.527: E/AndroidRuntime(339): at java.lang.Class.newInstanceImpl(Native Method)
10-27 19:05:46.527: E/AndroidRuntime(339): at java.lang.Class.newInstance(Class.java:1409)
10-27 19:05:46.527: E/AndroidRuntime(339): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
10-27 19:05:46.527: E/AndroidRuntime(339): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
10-27 19:05:46.527: E/AndroidRuntime(339): ... 11 more
10-27 19:05:46.487:D/AndroidRuntime(339):关闭虚拟机
10-27 19:05:46.487:W/dalvikvm(339):threadid=1:线程以未捕获异常退出(组=0x40015560)
10-27 19:05:46.527:E/AndroidRuntime(339):致命异常:主
10-27 19:05:46.527:E/AndroidRuntime(339):java.lang.RuntimeException:无法实例化活动组件信息{com.example.textbox/com.example.textbox.MainActivity}:java.lang.NullPointerException
10-27 19:05:46.527:E/AndroidRuntime(339):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
10-27 19:05:46.527:E/AndroidRuntime(339):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
10-27 19:05:46.527:E/AndroidRuntime(339):在android.app.ActivityThread.access$1500(ActivityThread.java:117)
10-27 19:05:46.527:E/AndroidRuntime(339):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
10-27 19:05:46.527:E/AndroidRuntime(339):在android.os.Handler.dispatchMessage(Handler.java:99)上
10-27 19:05:46.527:E/AndroidRuntime(339):在android.os.Looper.loop(Looper.java:123)
10-27 19:05:46.527:E/AndroidRuntime(339):位于android.app.ActivityThread.main(ActivityThread.java:3683)
10-27 19:05:46.527:E/AndroidRuntime(339):位于java.lang.reflect.Method.Invokenactive(本机方法)
10-27 19:05:46.527:E/AndroidRuntime(339):位于java.lang.reflect.Method.invoke(Method.java:507)
10-27 19:05:46.527:E/AndroidRuntime(339):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-27 19:05:46.527:E/AndroidRuntime(339):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-27 19:05:46.527:E/AndroidRuntime(339):在dalvik.system.NativeStart.main(本机方法)
10-27 19:05:46.527:E/AndroidRuntime(339):由以下原因引起:java.lang.NullPointerException
10-27 19:05:46.527:E/AndroidRuntime(339):在android.app.Activity.findViewById(Activity.java:1647)
10-27 19:05:46.527:E/AndroidRuntime(339):位于com.example.textbox.MainActivity。(MainActivity.java:15)
10-27 19:05:46.527:E/AndroidRuntime(339):位于java.lang.Class.newInstanceImpl(本机方法)
10-27 19:05:46.527:E/AndroidRuntime(339):位于java.lang.Class.newInstance(Class.java:1409)
10-27 19:05:46.527:E/AndroidRuntime(339):在android.app.Instrumentation.newActivity(Instrumentation.java:1021)上
10-27 19:05:46.527:E/AndroidRuntime(339):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
10-27 19:05:46.527:E/AndroidRuntime(339):。。。还有11个
为什么会这样?请帮忙 在指定我们正在考虑的布局之后,我们需要参考
EditText
。
我认为setContentView()
可以帮助您了解我们正在考虑的布局。因此,请尝试在语句setContentView()
之后使用findViewById()
初始化EditText
替换
private EditText text = (EditText)findViewById(R.id.text);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text.setOnKeyListener(new TextMaker());
}
与
只需在您的
onCreate()中使用findViewById()
,谢谢!我真的很感谢你的帮助!这是我的荣幸。谢谢你的回复。我真的很感激:)
private EditText text = (EditText)findViewById(R.id.text);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text.setOnKeyListener(new TextMaker());
}
private EditText text ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = (EditText)findViewById(R.id.text);
text.setOnKeyListener(new TextMaker());
}