2012-10-31 61 views
0

有誰知道爲什麼這不起作用?它給了我一個logcat非常基本的錯誤,所以我想我不必補充。Android MediaPlayer mp3錯誤

MainActivity.java:

package com.sydcul.badluckboris; 

import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.app.Activity; 
import android.view.View; 
import android.widget.ImageButton; 

public class MainActivity extends Activity { 

    ImageButton boris; 
    MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.ouch); 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     boris = (ImageButton) findViewById(R.id.ibBoris); 

     boris.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View v) { 
       mp.start(); 
      } 
     }); 
     } 
} 

activity_main.xml中:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <ImageButton 
     android:id="@+id/ibBoris" 
     android:layout_width="250dp" 
     android:layout_height="300dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:contentDescription="@string/boris" 
     android:scaleType="fitXY" 
     android:src="@drawable/badluckboris2" /> 

</RelativeLayout> 

而且AndroidManifest.xml中:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.sydcul.badluckboris" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="15" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/title_activity_main" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

編輯:logcat的:

10-31 17:15:05.670: E/AndroidRuntime(6500): FATAL EXCEPTION: main 
10-31 17:15:05.670: E/AndroidRuntime(6500): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.sydcul.badluckboris/com.sydcul.badluckboris.MainActivity}: java.lang.NullPointerException 
10-31 17:15:05.670: E/AndroidRuntime(6500):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1573) 
10-31 17:15:05.670: E/AndroidRuntime(6500):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 
10-31 17:15:05.670: E/AndroidRuntime(6500):  at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
10-31 17:15:05.670: E/AndroidRuntime(6500):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 
10-31 17:15:05.670: E/AndroidRuntime(6500):  at android.os.Handler.dispatchMessage(Handler.java:99) 
10-31 17:15:05.670: E/AndroidRuntime(6500):  at android.os.Looper.loop(Looper.java:130) 
10-31 17:15:05.670: E/AndroidRuntime(6500):  at android.app.ActivityThread.main(ActivityThread.java:3691) 
10-31 17:15:05.670: E/AndroidRuntime(6500):  at java.lang.reflect.Method.invokeNative(Native Method) 
10-31 17:15:05.670: E/AndroidRuntime(6500):  at java.lang.reflect.Method.invoke(Method.java:507) 
10-31 17:15:05.670: E/AndroidRuntime(6500):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912) 
10-31 17:15:05.670: E/AndroidRuntime(6500):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:670) 
10-31 17:15:05.670: E/AndroidRuntime(6500):  at dalvik.system.NativeStart.main(Native Method) 
10-31 17:15:05.670: E/AndroidRuntime(6500): Caused by: java.lang.NullPointerException 
10-31 17:15:05.670: E/AndroidRuntime(6500):  at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:100) 
10-31 17:15:05.670: E/AndroidRuntime(6500):  at com.sydcul.badluckboris.MainActivity.<init>(MainActivity.java:12) 
10-31 17:15:05.670: E/AndroidRuntime(6500):  at java.lang.Class.newInstanceImpl(Native Method) 
10-31 17:15:05.670: E/AndroidRuntime(6500):  at java.lang.Class.newInstance(Class.java:1409) 
10-31 17:15:05.670: E/AndroidRuntime(6500):  at android.app.Instrumentation.newActivity(Instrumentation.java:1024) 
10-31 17:15:05.670: E/AndroidRuntime(6500):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1565) 
10-31 17:15:05.670: E/AndroidRuntime(6500):  ... 11 more 
10-31 17:15:05.680: E/(1749): Dumpstate > /data/log/dumpstate_app_error 
10-31 17:15:05.680: W/ActivityManager(1749): Force finishing activity com.sydcul.badluckboris/.MainActivity 

提前致謝。值得注意的是,我是Android的小菜鳥。做了很多VB.NET壽。

回答

2

錯誤會更容易。我從我看到的純粹猜測是,你從不準備MediaPlayer,但我不確定。看到MediaPlayer設置在onCreate之外也有點奇怪,可能當時上下文還不完全有效,但我不知道這是否真的會導致問題。

+1

我將添加該錯誤。 – Sydcul

+1

我同意,你不應該在類構建時嘗試訪問應用程序上下文,而應該在'onCreate'中。 – Tim

+0

好的。我會嘗試的。 – Sydcul