2012-08-22 33 views
2

我在我的eclipse項目中使用了多個包,所有包都有相同的前綴。這裏是結構的截圖!Android多包問題

Eclipse IDE screenshot

的問題是,當我運行該應用程序我得到這個錯誤信息:

無法啓動活動ComponentInfo {com.td.bookshelf/com.td.bookshelf.SplashActivity }:java.lang.NullPointerException)

我已經手動添加了所有的包,並從另一個項目中複製了類文件。 因此,我清理建立的項目,也重新啓動了日食,但徒勞無功。

請幫我擺脫錯誤。

08-22 13:43:07.367: E/AndroidRuntime(4900): FATAL EXCEPTION: main 
08-22 13:43:07.367: E/AndroidRuntime(4900): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.td.bookshelf/com.td.bookshelf.SplashActivity}: java.lang.NullPointerException 
08-22 13:43:07.367: E/AndroidRuntime(4900):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651) 
08-22 13:43:07.367: E/AndroidRuntime(4900):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 
08-22 13:43:07.367: E/AndroidRuntime(4900):  at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
08-22 13:43:07.367: E/AndroidRuntime(4900):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 
08-22 13:43:07.367: E/AndroidRuntime(4900):  at android.os.Handler.dispatchMessage(Handler.java:99) 
08-22 13:43:07.367: E/AndroidRuntime(4900):  at android.os.Looper.loop(Looper.java:123) 
08-22 13:43:07.367: E/AndroidRuntime(4900):  at android.app.ActivityThread.main(ActivityThread.java:3687) 
08-22 13:43:07.367: E/AndroidRuntime(4900):  at java.lang.reflect.Method.invokeNative(Native Method) 
08-22 13:43:07.367: E/AndroidRuntime(4900):  at java.lang.reflect.Method.invoke(Method.java:507) 
08-22 13:43:07.367: E/AndroidRuntime(4900):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842) 
08-22 13:43:07.367: E/AndroidRuntime(4900):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
08-22 13:43:07.367: E/AndroidRuntime(4900):  at dalvik.system.NativeStart.main(Native Method) 
08-22 13:43:07.367: E/AndroidRuntime(4900): Caused by: java.lang.NullPointerException 
08-22 13:43:07.367: E/AndroidRuntime(4900):  at com.td.bookshelf.SplashActivity.onCreate(SplashActivity.java:56) 
08-22 13:43:07.367: E/AndroidRuntime(4900):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
08-22 13:43:07.367: E/AndroidRuntime(4900):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) 
08-22 13:43:07.367: E/AndroidRuntime(4900):  ... 11 more 
+0

你能給出完整的堆棧跟蹤嗎?你確定你的問題來自你的包裝結構嗎? –

+1

SplashActivity.java:56行上的內容是什麼? –

+0

我不知道它是否與我添加到項目或包結構中的新類文件有關。無論如何,我沒有在項目中的任何錯誤。 –

回答

1

它看起來像錯誤是從你的包結構的到來。

在堆棧跟蹤你可以閱讀:

E/AndroidRuntime(4900): Caused by: java.lang.NullPointerException 
E/AndroidRuntime(4900):  at com.td.bookshelf.SplashActivity.onCreate(SplashActivity.java:56) 

你得到一個NullPointerException當SplashActivity的onCreate方法被調用。

您的onCreate方法可能有問題。

+0

字符串文件= TDApplication.getAppContext()getFilesDir() \t \t \t \t .getAbsolutePath() \t \t \t \t + 「/bookinfo.gmms」。 \t \t bookinfo = new File(file);這是我在56行的代碼。但是你可以用代碼解釋問題。因爲當我用一個包使用相同的代碼時它運行良好。 –

+0

什麼是TDApplication?它在哪裏初始化? –

+0

TDApplication來自於您可以在截圖中看到的相同包。內容是:public class TDApplication extends應用程序{0}私有靜態上下文上下文; \t @Override \t公共無效的onCreate(){ \t \t super.onCreate(); \t \t TDA應用。context = getApplicationContext(); \t} \t公共靜態上下文getAppContext(){ \t \t返回TDApplication.context; \t} } –