2014-02-27 35 views
0

我下面一起開始的Android遊戲書,並在第6章(對於那些熟悉的書)結束時,我莫名其妙地搞砸了清單文件,我就得到一個java.lang.NullPointerException主要活動課。有麻煩的Android清單配置

遊戲包含三個包:

  • com.badlogic.androidgames.framework
  • com.badlogic.androidgames.framework.impl
  • com.badlogic.androidgames.framework.mrnom

    <uses-sdk 
        android:minSdkVersion="5" 
        android:targetSdkVersion="19" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission> 
    <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission> 
    <application 
        android:allowBackup="true" 
        android:icon="@drawable/ic_launcher" 
        android:label="@string/app_name" 
        android:theme="@style/AppTheme" > 
        <activity 
         android:name=".MrNomGame" 
         android:label="@string/app_name" > 
         <intent-filter> 
          <action android:name="android.intent.action.MAIN" /> 
    
          <category android:name="android.intent.category.LAUNCHER" /> 
         </intent-filter> 
         </activity> 
        </application> 
    </manifest> 
    

MrNomGame位於com.badlogic.androidgames.mrnom包中。如果它不是很明顯,我對android開發極其陌生,我無法圍繞java和android(manifest)如何辨別文件位置,以及大約80億個其他問題。

謝謝。

編輯:主要活動和logcat的輸出:

package com.badlogic.androidgames.mrnom; 

import com.badlogic.androidgames.framework.Screen; 
import com.badlogic.androidgames.framework.impl.AndroidGame; 

public class MrNomGame extends AndroidGame { 

    public Screen getStartScreen() { 
     return new LoadingScreen(this); 
    } 
} 

按羅比池的建議,我更新清單android:name:android:name=".mrnom.MrNomGame"這是變更後的logcat的輸出。

02-27 10:01:21.039: D/AndroidRuntime(1261): Shutting down VM 
02-27 10:01:21.039: W/dalvikvm(1261): threadid=1: thread exiting with uncaught exception (group=0xb3affba8) 
02-27 10:01:21.129: E/AndroidRuntime(1261): FATAL EXCEPTION: main 
02-27 10:01:21.129: E/AndroidRuntime(1261): Process: com.badlogic.androidgames.mrnom, PID: 1261 
02-27 10:01:21.129: E/AndroidRuntime(1261): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.badlogic.androidgames.mrnom/com.badlogic.androidgames.mrnom.MrNomGame}: java.lang.NullPointerException 
02-27 10:01:21.129: E/AndroidRuntime(1261):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 
02-27 10:01:21.129: E/AndroidRuntime(1261):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
02-27 10:01:21.129: E/AndroidRuntime(1261):  at android.app.ActivityThread.access$800(ActivityThread.java:135) 
02-27 10:01:21.129: E/AndroidRuntime(1261):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
02-27 10:01:21.129: E/AndroidRuntime(1261):  at android.os.Handler.dispatchMessage(Handler.java:102) 
02-27 10:01:21.129: E/AndroidRuntime(1261):  at android.os.Looper.loop(Looper.java:136) 
02-27 10:01:21.129: E/AndroidRuntime(1261):  at android.app.ActivityThread.main(ActivityThread.java:5017) 
02-27 10:01:21.129: E/AndroidRuntime(1261):  at java.lang.reflect.Method.invokeNative(Native Method) 
02-27 10:01:21.129: E/AndroidRuntime(1261):  at java.lang.reflect.Method.invoke(Method.java:515) 
02-27 10:01:21.129: E/AndroidRuntime(1261):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
02-27 10:01:21.129: E/AndroidRuntime(1261):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
02-27 10:01:21.129: E/AndroidRuntime(1261):  at dalvik.system.NativeStart.main(Native Method) 
02-27 10:01:21.129: E/AndroidRuntime(1261): Caused by: java.lang.NullPointerException 
02-27 10:01:21.129: E/AndroidRuntime(1261):  at android.graphics.Canvas.<init>(Canvas.java:136) 
02-27 10:01:21.129: E/AndroidRuntime(1261):  at com.badlogic.androidgames.framework.impl.AndroidGraphics.<init>(AndroidGraphics.java:30) 
02-27 10:01:21.129: E/AndroidRuntime(1261):  at com.badlogic.androidgames.framework.impl.AndroidGame.onCreate(AndroidGame.java:44) 
02-27 10:01:21.129: E/AndroidRuntime(1261):  at android.app.Activity.performCreate(Activity.java:5231) 
02-27 10:01:21.129: E/AndroidRuntime(1261):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
02-27 10:01:21.129: E/AndroidRuntime(1261):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 
02-27 10:01:21.129: E/AndroidRuntime(1261):  ... 11 more 
02-27 10:06:21.749: I/Process(1261): Sending signal. PID: 1261 SIG: 9 
+1

請提供完整的清單,特別是其中的例外隨着logcat的輸出發生的所有活動 –

+0

你從清單削減重要組成部分.. – donfuxx

+0

對不起球員,我禁止複製> pasted-> CTRL + K,它被切斷了。現在修復了 – SuperNoob

回答

1

如果你的清單包名稱是com.badlogic.androidgames那麼你需要改變.MrNomGame.mrnom.MrNomGame。清單中的名稱與清單中的類名相關。您還可以將活動android:name更改爲完全分類的包/類名稱。

+0

我更新了清單並仍然得到NullPointerException看到上面的更新。 – SuperNoob

+0

現在你的問題是在Activity中 - 在com.badlogic.androidgames.framework.impl.AndroidGraphics。 (AndroidGraphics.java:30) - 查看第30行 – Natali

0

添加絕對傳球的Activity不只是名字。例如:

android:name="com.example.package.MrNomGame" 
+0

有一個捷徑:寫'。 '是'的縮寫。 '其中在清單文件的標記中定義。 – fabian