首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >需要帮助解决安卓NullPointer问题

需要帮助解决安卓NullPointer问题
EN

Stack Overflow用户
提问于 2011-07-02 18:43:33
回答 3查看 120关注 0票数 1

我目前正在制作一个游戏,我遇到了这个恼人的问题。我试着用谷歌搜索了一下,但到目前为止还没找到。我在自己的文件中定义了一个类(这里的代码不是我的游戏代码,而是一个带有相同错误的简化代码):

代码语言:javascript
运行
复制
package graf.grafika;

public class MyClass {
    int number;
}

问题出在myMethod(应用程序意外停止):

代码语言:javascript
运行
复制
public class aktivnost extends Activity {
    MyClass[] myclass = new MyClass[5];

    void myMethod()
    {
        //Error
        myclass[0].number = 1;
    }

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        myMethod();
        setContentView(new Panel(this));
    }
...other required methods
}

Logcat:

代码语言:javascript
运行
复制
07-02 10:01:13.507: ERROR/AndroidRuntime(3203): FATAL EXCEPTION: main
07-02 10:01:13.507: ERROR/AndroidRuntime(3203): java.lang.RuntimeException: Unable to start activity ComponentInfo{graf.grafika/graf.grafika.aktivnost}: java.lang.NullPointerException
07-02 10:01:13.507: ERROR/AndroidRuntime(3203):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1736)
07-02 10:01:13.507: ERROR/AndroidRuntime(3203):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1752)
07-02 10:01:13.507: ERROR/AndroidRuntime(3203):     at android.app.ActivityThread.access$1500(ActivityThread.java:123)
07-02 10:01:13.507: ERROR/AndroidRuntime(3203):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:993)
07-02 10:01:13.507: ERROR/AndroidRuntime(3203):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-02 10:01:13.507: ERROR/AndroidRuntime(3203):     at android.os.Looper.loop(Looper.java:126)
07-02 10:01:13.507: ERROR/AndroidRuntime(3203):     at android.app.ActivityThread.main(ActivityThread.java:3997)
07-02 10:01:13.507: ERROR/AndroidRuntime(3203):     at java.lang.reflect.Method.invokeNative(Native Method)
07-02 10:01:13.507: ERROR/AndroidRuntime(3203):     at java.lang.reflect.Method.invoke(Method.java:491)
07-02 10:01:13.507: ERROR/AndroidRuntime(3203):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
07-02 10:01:13.507: ERROR/AndroidRuntime(3203):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
07-02 10:01:13.507: ERROR/AndroidRuntime(3203):     at dalvik.system.NativeStart.main(Native Method)
07-02 10:01:13.507: ERROR/AndroidRuntime(3203): Caused by: java.lang.NullPointerException
07-02 10:01:13.507: ERROR/AndroidRuntime(3203):     at graf.grafika.aktivnost.myMethod(aktivnost.java:17)
07-02 10:01:13.507: ERROR/AndroidRuntime(3203):     at graf.grafika.aktivnost.onCreate(aktivnost.java:23)
07-02 10:01:13.507: ERROR/AndroidRuntime(3203):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
07-02 10:01:13.507: ERROR/AndroidRuntime(3203):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1700)
07-02 10:01:13.507: ERROR/AndroidRuntime(3203):     ... 11 more

有人能帮我解决这个问题吗?我是java编程的新手。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-02 18:46:54

myclass[0]为空,因为它没有指向任何对象。这就是为什么你会得到一个空指针。你应该做myclass[0] = new MyClass();

代码语言:javascript
运行
复制
public class aktivnost extends Activity {
    MyClass[] myclass = new MyClass[5];

    void myMethod()
    {
        //Error
        myclass[0] = new MyClass(); 
        myclass[0].number = 1;
    }

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        myMethod();
        setContentView(new Panel(this));
    }
...other required methods
}
票数 0
EN

Stack Overflow用户

发布于 2011-07-02 19:04:55

要在数组中实际放入5个新类:

代码语言:javascript
运行
复制
MyClass[] myclass = new MyClass[5];
for(int i = 0; i < 5; i++)
{
myclass[i] = new MyClass();
}
票数 1
EN

Stack Overflow用户

发布于 2011-07-02 18:52:10

MyClass[] myclass = new MyClass5;意味着你初始化了数组对象,而不是单个对象,你应该初始化你想要在数组对象中使用的单个对象,比如myclass = new MyClass();

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6556518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档