android studio java.langNullPointerException null对象参考

Caedon贝茨

尝试运行android应用时,我不断收到错误消息,告诉我有null对象引用。我仍然是android和java的初学者,我将不胜感激我能得到的任何帮助。

这是logcat

01-17 17:11:49.156  27778-27778/com.example.owner.sketchy D/AndroidRuntime﹕ Shutting down VM
    --------- beginning of crash
01-17 17:11:49.157  27778-27778/com.example.owner.sketchy E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.example.owner.sketchy, PID: 27778
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.owner.sketchy/com.example.owner.sketchy.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.widget.LinearLayout.getChildAt(int)' on a null object reference
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.widget.LinearLayout.getChildAt(int)' on a null object reference
            at com.example.owner.sketchy.MainActivity.onCreate(MainActivity.java:33)
            at android.app.Activity.performCreate(Activity.java:5933)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

这是我的MainActivity.java

    package com.example.owner.sketchy;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageButton;
import android.widget.LinearLayout;

public class MainActivity extends ActionBarActivity {


    private ImageButton currPaint;
    private DrawingView drawView;

    public void paintClicked(View view) {
        if (view != currPaint) {

            ImageButton imgView = (ImageButton) view;
            String color = view.getTag().toString();
            imgView.setImageDrawable(getResources().getDrawable(R.drawable.paint_pressed));
            currPaint.setImageDrawable(getResources().getDrawable(R.drawable.paint));
            currPaint = (ImageButton) view;
            drawView.setColor(color);
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        drawView = (DrawingView)findViewById(R.id.drawing);
        LinearLayout paintLayout = (LinearLayout)findViewById(R.id.paint_colors);
        currPaint = (ImageButton)paintLayout.getChildAt(0);
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

}
纳塔里奥

paintLayout为空,而您的问题为onCreate()从超类覆盖方法时,应始终(大多数时候)使用调用该类中的方法super.method(),以允许进行常规处理。

另外,您也缺少对的呼叫setContentView(R.layout.your_layout)因此,请不要忘记这两行:

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

    drawView = (DrawingView)findViewById(R.id.drawing);
    LinearLayout paintLayout = (LinearLayout)findViewById(R.id.paint_colors);
    currPaint = (ImageButton)paintLayout.getChildAt(0);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android - 位图 Null 对象参考

来自分类Dev

Android Studio参考库

来自分类Dev

Android Studio Java线程

来自分类Dev

带有setter和getter的Null对象参考SAXParser Android

来自分类Dev

Android Studio显示功能参考?

来自分类Dev

java.lang.NumberFormatException: null(Android Studio 中的错误)

来自分类Dev

.. CLOSED .. JNI 错误“java_class == null”Android Studio

来自分类Dev

Android Studio Cucumber for Java插件

来自分类Dev

Java中的继承(Android Studio)

来自分类Dev

Android Studio(Java)替换功能

来自分类Dev

Java Android Studio 和 Firebase

来自分类Dev

Java对象参考冗余

来自分类Dev

Java对象参考任务

来自分类Dev

Android Java(Android Studio)上的ZeroMQ

来自分类Dev

使用Android Studio的Android上的Java

来自分类Dev

Android Java(Android Studio)上的ZeroMQ

来自分类Dev

Android Studio启用注入语言/参考

来自分类Dev

Android Studio中没有参考文档

来自分类Dev

未解决的参考:requireLensFacing | Android Studio

来自分类Dev

Android Studio可绘制对象

来自分类Dev

Android Studio,向后发送对象

来自分类Dev

Firebase对象下载-Android Studio

来自分类Dev

在Android Studio中为null

来自分类Dev

Android Snackbar空对象参考

来自分类Dev

如何在Android Studio中从MainActivity.java访问xml gui对象?

来自分类Dev

即使已加载我的文件(Android Studio,libGDX,Java),AssetManager.get()也返回null

来自分类Dev

为什么 Android Studio 指示一个对象可能为 null 而它不能为 null?

来自分类Dev

Android Studio Java JDK环境路径

来自分类Dev

Android Studio找不到JAVA_HOME