2013-06-27 55 views
0

我初學者在android應用程序。我創造了我的第一個應用程序從文件夾播放聲音在水庫目錄我做我的代碼以及它運行良好的話,我去停車的聲音我這樣做將,但是當我旋轉移動或貓移動後退按鈕錯誤應用程序停止....發生。我該如何解決這個問題。錯誤應用程序停止時旋轉移動

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
    if ((keyCode == KeyEvent.KEYCODE_BACK)) 
{ 
    mp= MediaPlayer.create(Ramadan.this,R.raw.sound); 

if(mp.isPlaying()) 
{ 
    mp.stop(); 
    return true; 
} 

} 
else return false; 
    return false; 

} 

@Override 
protected void onStart() { 
    super.onStart(); 
} 

@Override 
protected void onResume() { 

    IntentFilter intentFilter = new IntentFilter(); 
    intentFilter.addAction(Intent.ACTION_SCREEN_OFF); 

    registerReceiver(listener, intentFilter); 

    super.onResume(); 
} 
@Override 
protected void onStop() { 
    super.onStop(); 

    if(mp.isPlaying()) 
    { 
     mp.stop(); 
     mp.release(); 
    } 
} 


@Override 
protected void onPause() { 

    super.onPause(); 

    if(mp.isPlaying()) 
    { 
     mp.stop(); 
     mp.release(); 
    } 
} 

<activity 
     android:name="com.x.x" 
     android:label="@string/app_name" 
     android:launchMode="singleTask" android:configChanges="orientation|keyboardHidden" > 


     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <action android:name="android.intent.action.ACTION_SCREEN_OFF"/> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

06-27 17:57:59.422: E/Trace(636): error opening trace file: No such file or directory (2) 
06-27 17:58:00.452: I/Choreographer(636): Skipped 31 frames! The application may be doing too much work on its main thread. 
06-27 17:58:00.492: D/gralloc_goldfish(636): Emulator without GPU emulation detected. 
06-27 17:58:00.992: I/Choreographer(636): Skipped 74 frames! The application may be doing too much work on its main thread. 
06-27 17:58:02.432: D/dalvikvm(636): GC_CONCURRENT freed 115K, 3% free 8346K/8519K, paused 6ms+27ms, total 112ms 
06-27 17:58:02.432: D/dalvikvm(636): WAIT_FOR_CONCURRENT_GC blocked 67ms 
06-27 17:58:08.902: D/AndroidRuntime(636): Shutting down VM 
06-27 17:58:08.902: W/dalvikvm(636): threadid=1: thread exiting with uncaught exception (group=0x40a13300) 
06-27 17:58:08.982: E/AndroidRuntime(636): FATAL EXCEPTION: main 
06-27 17:58:08.982: E/AndroidRuntime(636): java.lang.RuntimeException: Unable to pause activity {com.ramadan/com.ramadan.Ramadan}: java.lang.NullPointerException 
06-27 17:58:08.982: E/AndroidRuntime(636): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2838) 
06-27 17:58:08.982: E/AndroidRuntime(636): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2794) 
06-27 17:58:08.982: E/AndroidRuntime(636): at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:2772) 
06-27 17:58:08.982: E/AndroidRuntime(636): at android.app.ActivityThread.access$800(ActivityThread.java:130) 
06-27 17:58:08.982: E/AndroidRuntime(636): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1212) 
06-27 17:58:08.982: E/AndroidRuntime(636): at android.os.Handler.dispatchMessage(Handler.java:99) 
06-27 17:58:08.982: E/AndroidRuntime(636): at android.os.Looper.loop(Looper.java:137) 
06-27 17:58:08.982: E/AndroidRuntime(636): at android.app.ActivityThread.main(ActivityThread.java:4745) 
06-27 17:58:08.982: E/AndroidRuntime(636): at java.lang.reflect.Method.invokeNative(Native Method) 
06-27 17:58:08.982: E/AndroidRuntime(636): at java.lang.reflect.Method.invoke(Method.java:511) 
06-27 17:58:08.982: E/AndroidRuntime(636): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
06-27 17:58:08.982: E/AndroidRuntime(636): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
06-27 17:58:08.982: E/AndroidRuntime(636): at dalvik.system.NativeStart.main(Native Method) 
06-27 17:58:08.982: E/AndroidRuntime(636): Caused by: java.lang.NullPointerException 
06-27 17:58:08.982: E/AndroidRuntime(636): at com.ramadan.Ramadan.onPause(Ramadan.java:152) 
06-27 17:58:08.982: E/AndroidRuntime(636): at android.app.Activity.performPause(Activity.java:5106) 
06-27 17:58:08.982: E/AndroidRuntime(636): at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1225) 
06-27 17:58:08.982: E/AndroidRuntime(636): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2825) 
06-27 17:58:08.982: E/AndroidRuntime(636): ... 12 more 
06-27 17:58:11.552: I/Process(636): Sending signal. PID: 636 SIG: 9 
+0

是否有logcat的(可能)錯誤信息? –

+0

發表您的錯誤日誌,請:) – juned

+0

我添加日誌貓 – Egydeveloper

回答

2

在您的清單中,執行以下更改。

<activity android:name=".EULAActivity" 
android:theme="@android:style/Theme.Translucent" 
android:configChanges="keyboard|keyboardHidden|orientation" /> 

android:configChanges is the attribute, you need to use in your application. 
+0

他已經用它已經'機器人:configChanges =「方向| keyboardHidden」' – juned

+0

好吧...我沒有注意到的是,在這種情況下,必須有任何錯誤時拋出每當烏爾改變方向.. –

+0

沒錯正確的,必須有一些例外:) – juned

0

試試這個代碼...

放入類文件上的onCreate()重寫後onBackPressed()。

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 
    super.onBackPressed(); 
    finish(); 
} 

,並把在AndroidManifest.xml中文件在與活動寄存器財產

android:screenOrientation="portrait" 

按您的要求,如果你需要屏幕potrait /景觀

+0

錯誤「應用程序停止......」發生了,當按下手機返回鍵。我需要用兩個方向不僅人像 – Egydeveloper

+0

比你需要的應用程序工作menifest.xml文件中的android:configChanges =「orientation」 –

+0

這會導致出現同樣的錯誤,我在我的問題處詢問 – Egydeveloper

0

變量mp必須設置爲一個適當的值(好地方onCreate()onResume())在使用之前(因爲它在onPause()發生)

相關問題