2012-10-31 5 views
0

Est-ce que quelqu'un sait pourquoi cela ne fonctionne pas? Cela me donne une erreur très basique dans le logcat, donc je suppose que je n'ai pas besoin d'ajouter ça.Android MediaPlayer mp3 erreur

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> 

Et le 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> 

EDIT: 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 

Merci d'avance. Il est intéressant de noter que je suis un Noob avec Android. A fait à peu près VB.NET tho.

Répondre

2

Ce sera plus facile avec l'erreur. Mon estimation pure de ce que je vois est que vous ne préparez jamais le MediaPlayer, mais je ne suis pas sûr. C'est aussi un peu bizarre de voir le MediaPlayer en dehors d'onCreate, il est possible que le contexte ne soit pas encore totalement valide à ce moment-là, mais je ne sais pas si cela causerait vraiment un problème.

+1

Je vais ajouter l'erreur. – Sydcul

+1

Je suis d'accord, vous ne devriez pas essayer d'accéder au contexte de l'application au moment de la construction de la classe, mais plutôt à l'intérieur de 'onCreate'. – Tim

+0

Ok. Je vais essayer ça. – Sydcul