nom先生不会开始

时间:2013-01-28 18:54:24

标签: java android emulation logcat

无论如何:我正在学习安卓机器游戏中的(非常好的)书籍的安卓游戏编程。 今天我终于完成了Nom先生的游戏,这本书用来解释游戏编程的基础知识。没有错误(我发现该书的android 4版本有一些错误......但无论如何)在代码上。所以我在api 8模拟器上运行应用程序。一切似乎都很好;但是当我启动应用程序时,屏幕上会出现错误:

申请先生Nom(进程com.badlogic.androidgames.mrnom)意外停止了。请稍后再试“。

非常糟糕。所以我查看logcat,这些是错误:

01-28 18:32:54.103: E/AndroidRuntime(330): FATAL EXCEPTION: main
01-28 18:32:54.103: E/AndroidRuntime(330): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.badlogic.androidgames.mrnom/com.badlogic.androidgames.mrnom.MrNomGame}: java.lang.NullPointerException
01-28 18:32:54.103: E/AndroidRuntime(330):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
01-28 18:32:54.103: E/AndroidRuntime(330):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
01-28 18:32:54.103: E/AndroidRuntime(330):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
01-28 18:32:54.103: E/AndroidRuntime(330):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
01-28 18:32:54.103: E/AndroidRuntime(330):  at android.os.Handler.dispatchMessage(Handler.java:99)
01-28 18:32:54.103: E/AndroidRuntime(330):  at android.os.Looper.loop(Looper.java:123)
01-28 18:32:54.103: E/AndroidRuntime(330):  at android.app.ActivityThread.main(ActivityThread.java:4627)
01-28 18:32:54.103: E/AndroidRuntime(330):  at java.lang.reflect.Method.invokeNative(Native Method)
01-28 18:32:54.103: E/AndroidRuntime(330):  at java.lang.reflect.Method.invoke(Method.java:521)
01-28 18:32:54.103: E/AndroidRuntime(330):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
01-28 18:32:54.103: E/AndroidRuntime(330):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-28 18:32:54.103: E/AndroidRuntime(330):  at dalvik.system.NativeStart.main(Native Method)
01-28 18:32:54.103: E/AndroidRuntime(330): Caused by: java.lang.NullPointerException
01-28 18:32:54.103: E/AndroidRuntime(330):  at com.badlogic.androidgames.framework.impl.AndroidFileIO.<init>(AndroidFileIO.java:25)
01-28 18:32:54.103: E/AndroidRuntime(330):  at com.badlogic.androidgames.framework.impl.AndroidGame.onCreate(AndroidGame.java:51)
01-28 18:32:54.103: E/AndroidRuntime(330):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-28 18:32:54.103: E/AndroidRuntime(330):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
01-28 18:32:54.103: E/AndroidRuntime(330):  ... 11 more

所以:在另一个主题中我发现我的问题是cammon super-noob问题:实际上你必须在Manifest文件中添加你所有的活动:奇怪的是我实际上已经加载了所有活动(一个)在清单上。这是:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.badlogic.androidgames.mrnom"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" 
        android:label="Mr. Nom" 
        android:debuggable="true">
        <activity android:name=".MrNomGame"
                  android:label="Mr. Nom"
                  android:configChanges="keyboard|keyboardHidden|orientation"
                  android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  
    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="8"/>
</manifest> 

那么错误在哪里?我仔细检查了所有类和接口,即使是书籍网站上的源代码(http://code.google.com/p/beginning-android-games/),如果它可以帮助找出问题,也因为我无法加载所有30多个游戏类);资产包含书籍网站上的bitmaps-ogg文件,我甚至使用了书籍包的相同名称,那么错误在哪里? 再次对不起英语(并打扰我的一个可能非常愚蠢的错误), asduffo

修改 致David M:第25行是:

this.assets = context.getAssets();

在AndroidGame.onCreate()的第51行还有另一个nullpoiterexception

fileIO = new AndroidFileIO(getAssets());

0 个答案:

没有答案