android - 我想不通

标签 android

我正在学习 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);


        }
}

最佳答案

我相信 setContentView(main) 是问题所在。您需要将其设置为 RelativeLayout 或使用 setContentView(R.layout.main); main 从未初始化。

关于android - 我想不通,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22466466/

相关文章:

java - 在我的 FragmentContainerView 对象中找不到方法 getFragment()

android - 如何获取当前wifi网络中的 Activity 设备列表?

android - 试图在游标关闭后访问它

android - 如何在 CardView 中显示 MapView?

android - 制作一个按钮来显示 toast 并将数据发送到另一个 Activity

android - 如何获取 firebase token ?

android - 打开第三方 Epub 阅读器

android - 覆盖 Android 相机应用程序,也就是条形码扫描器

android - 如何一个接一个地播放音频文件

android - 如何在Android系统上编译运行C/C++程序