我正在学习Android开发。运行下面的代码将导致此错误消息日志。我想不通,有人看到我在做什么错吗?
03-17 23:02:59.387: E/Trace(15387): error opening trace file: No such file or directory (2)
03-17 23:02:59.387: D/ActivityThread(15387): setTargetHeapUtilization:0.25
03-17 23:02:59.397: D/ActivityThread(15387): setTargetHeapIdealFree:8388608
03-17 23:02:59.397: D/ActivityThread(15387): setTargetHeapConcurrentStart:2097152
03-17 23:02:59.497: D/AndroidRuntime(15387): Shutting down VM
03-17 23:02:59.497: W/dalvikvm(15387): threadid=1: thread exiting with uncaught exception (group=0x41bdc378)
03-17 23:02:59.507: E/AndroidRuntime(15387): FATAL EXCEPTION: main
03-17 23:02:59.507: E/AndroidRuntime(15387): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.fb_ui_in_code/com.example.fb_ui_in_code.MainActivity}: java.lang.NullPointerException
03-17 23:02:59.507: E/AndroidRuntime(15387): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2071)
03-17 23:02:59.507: E/AndroidRuntime(15387): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2096)
03-17 23:02:59.507: E/AndroidRuntime(15387): at android.app.ActivityThread.access$600(ActivityThread.java:138)
03-17 23:02:59.507: E/AndroidRuntime(15387): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1207)
03-17 23:02:59.507: E/AndroidRuntime(15387): at android.os.Handler.dispatchMessage(Handler.java:99)
03-17 23:02:59.507: E/AndroidRuntime(15387): at android.os.Looper.loop(Looper.java:213)
03-17 23:02:59.507: E/AndroidRuntime(15387): at android.app.ActivityThread.main(ActivityThread.java:4787)
03-17 23:02:59.507: E/AndroidRuntime(15387): at java.lang.reflect.Method.invokeNative(Native Method)
03-17 23:02:59.507: E/AndroidRuntime(15387): at java.lang.reflect.Method.invoke(Method.java:511)
03-17 23:02:59.507: E/AndroidRuntime(15387): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
03-17 23:02:59.507: E/AndroidRuntime(15387): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
03-17 23:02:59.507: E/AndroidRuntime(15387): at dalvik.system.NativeStart.main(Native Method)
03-17 23:02:59.507: E/AndroidRuntime(15387): Caused by: java.lang.NullPointerException
03-17 23:02:59.507: E/AndroidRuntime(15387): at android.view.ViewGroup.addViewInner(ViewGroup.java:3485)
03-17 23:02:59.507: E/AndroidRuntime(15387): at android.view.ViewGroup.addView(ViewGroup.java:3357)
03-17 23:02:59.507: E/AndroidRuntime(15387): at android.view.ViewGroup.addView(ViewGroup.java:3333)
03-17 23:02:59.507: E/AndroidRuntime(15387): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:281)
03-17 23:02:59.507: E/AndroidRuntime(15387): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:271)
03-17 23:02:59.507: E/AndroidRuntime(15387): at android.app.Activity.setContentView(Activity.java:1887)
03-17 23:02:59.507: E/AndroidRuntime(15387): at com.example.fb_ui_in_code.MainActivity.onCreate(MainActivity.java:21)
03-17 23:02:59.507: E/AndroidRuntime(15387): at android.app.Activity.performCreate(Activity.java:5008)
03-17 23:02:59.507: E/AndroidRuntime(15387): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
03-17 23:02:59.507: E/AndroidRuntime(15387): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2035)
03-17 23:02:59.507: E/AndroidRuntime(15387): ... 11 more
码
package com.example.fb_ui_in_code;
import android.os.Bundle;
import android.app.Activity;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;
import android.widget.TextView;
public class MainActivity extends Activity {
RelativeLayout main;
EditText usernameInput, passwordInput;
TextView message, username, password;
Button login;
LayoutParams dimensions;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(main);
init();
createMessageTextView();
main.addView(message, dimensions);
}
private void init() {
// TODO Auto-generated method stub
main = new RelativeLayout(this);
LayoutParams mainDimensions = new LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
main.setLayoutParams(mainDimensions);
usernameInput = new EditText(this);
passwordInput = new EditText(this);
message = new TextView(this);//please login first
username = new TextView(this);
password = new TextView(this);
login = new Button(this);
}
private void createMessageTextView() {
// TODO Auto-generated method stub
LayoutParams dimensions=new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
dimensions.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
message.setText("Please login first");
message.setLayoutParams(dimensions);
}
}
好吧,似乎nullPointerExecption来自第21行,那里有setContentView(main);
因此,我不仅可以回答您,还可以用Google'android developer setContentView'
幸运进入第一个条目http://developer.android.com/reference/android/app/Activity.html
在页面上搜索setcontentview,发现我需要传递一个引用我的内容视图的int,现在我问;是“主要”初始化?我要如何处理“主要”?瞧,您将在此活动中使用的所有视图都将引用此内容视图中的字段。
我们正在寻找的是与您的xml文件建立接口,在本例中为布局。因此编号为R.layout。WHATEVER_YOU_NAMED_THE_LAYOUT_YOU_WANT_TO_USE
凉?=]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句