2014-01-31 81 views
0

我在寫一個可以正常工作的應用程序。有很多活動。每個活動都以橫向模式運行。現在假設用戶正在看到一個活動,並且他按下了設備的電源按鈕,現在設備處於睡眠模式。未找到資源設備的電源按鈕被按下時出現異常

但是當他再次按下電源按鈕設備醒來,現在我的應用程序應該從用戶離開它的位置繼續,但是我的應用程序只是關閉而沒有強制關閉消息,意味着用戶突然進入主屏幕。

在logcat中它顯示了以下錯誤 -

01-31 12:22:40.010: E/AndroidRuntime(10591): FATAL EXCEPTION: main 
01-31 12:22:40.010: E/AndroidRuntime(10591): java.lang.RuntimeException: Unable to start   activity ComponentInfo{com.example.reflexapp/com.example.reflexapp.Login}:  android.content.res.Resources$NotFoundException: Resource ID #0x7f030023 
01-31 12:22:40.010: E/AndroidRuntime(10591): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2245) 
01-31 12:22:40.010: E/AndroidRuntime(10591): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2299) 
01-31 12:22:40.010: E/AndroidRuntime(10591): at android.app.ActivityThread.access$700(ActivityThread.java:150) 
01-31 12:22:40.010: E/AndroidRuntime(10591): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280) 
01-31 12:22:40.010: E/AndroidRuntime(10591): at android.os.Handler.dispatchMessage(Handler.java:99) 
01-31 12:22:40.010: E/AndroidRuntime(10591): at android.os.Looper.loop(Looper.java:137) 
01-31 12:22:40.010: E/AndroidRuntime(10591): at android.app.ActivityThread.main(ActivityThread.java:5283) 
01-31 12:22:40.010: E/AndroidRuntime(10591): at java.lang.reflect.Method.invokeNative(Native Method) 
01-31 12:22:40.010: E/AndroidRuntime(10591): at java.lang.reflect.Method.invoke(Method.java:511) 
01-31 12:22:40.010: E/AndroidRuntime(10591): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 
01-31 12:22:40.010: E/AndroidRuntime(10591): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 
01-31 12:22:40.010: E/AndroidRuntime(10591): at dalvik.system.NativeStart.main(Native Method) 
01-31 12:22:40.010: E/AndroidRuntime(10591): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030023 
01-31 12:22:40.010: E/AndroidRuntime(10591): at android.content.res.Resources.getValue(Resources.java:1883) 
01-31 12:22:40.010: E/AndroidRuntime(10591): at android.content.res.Resources.loadXmlResourceParser(Resources.java:3028) 
01-31 12:22:40.010: E/AndroidRuntime(10591): at android.content.res.Resources.getLayout(Resources.java:1722) 
01-31 12:22:40.010: E/AndroidRuntime(10591): at android.view.LayoutInflater.inflate(LayoutInflater.java:395) 
01-31 12:22:40.010: E/AndroidRuntime(10591): at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
01-31 12:22:40.010: E/AndroidRuntime(10591): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:364) 
01-31 12:22:40.010: E/AndroidRuntime(10591): at android.app.Activity.setContentView(Activity.java:1930) 
01-31 12:22:40.010: E/AndroidRuntime(10591): at com.example.reflexapp.Login.onCreate(Login.java:18) 
01-31 12:22:40.010: E/AndroidRuntime(10591): at android.app.Activity.performCreate(Activity.java:5283) 
01-31 12:22:40.010: E/AndroidRuntime(10591): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097) 
01-31 12:22:40.010: E/AndroidRuntime(10591): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209) 
01-31 12:22:40.010: E/AndroidRuntime(10591): ... 11 more 

我不明白我在做什麼錯在這裏。在每個活動中,我都這樣做 -

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.userlogin); 
    init(); 
} 

請幫我一把。提前致謝。

+0

什麼在Login.java(第18行)? –

+0

其活動,它有一個佈局文件R.layout.login。 – Anush

+0

你確定R文件有你自己的類而不是通用的'android.R' –

回答

2

我解決了我的問題。我犯了一個錯誤,因爲我的應用程序只能在橫向模式下工作我將所有佈局xml文件放在layout-land文件夾中。 佈局文件夾中沒有任何內容。

但事實證明,當設備進入睡眠狀態android系統試圖將肖像模式中的所有東西,所以它尋找肖像xmls在佈局文件夾,但什麼也沒有。因此它給資源找不到異常和應用程序退出。

即使您的應用只顯示風景佈局,您也必須在佈局文件夾中提供肖像xmls。 :-)

+0

謝謝!你的回答也解決了我的問題。我在「唯一的風景」應用程序中遇到了同樣的問題。 – Genar

0

我也有這個問題,當我的活動崩潰時,我按下主頁或返回按鈕鍵。我沒有「佈局」文件夾中的文件,因爲它們僅位於「佈局文件夾」文件夾中。我只是將我的文件從「layout-land」複製到「佈局」,現在當按Home鍵或Back鍵時,活動不會崩潰。起初這有點令人沮喪,但現在一切似乎都很順利。