2013-09-11 5 views
0

Всякий раз, когда я нажимаю кнопку, мое приложение падает. Что я делаю не так?Ошибка приложения при нажатии кнопки

public void onClick(View v) { 

      int primaryLength = PRIMARY.length; 
      final String primaryText = PRIMARY[rnd.nextInt(primaryLength)]; 
      int secondaryLength = SECONDARY.length; 
      final String secondaryText = SECONDARY[rnd.nextInt(secondaryLength)]; 
      final TextView textOne = (TextView)findViewById(R.id.textView1); 
      final TextView textTwo = (TextView)findViewById(R.id.textView2); 
      textOne.setText(primaryText); 
      textTwo.setText(secondaryText); 

      String primeT = primaryText; 
      Uri media = Uri.parse(primeT); 
      mpButtonOne = MediaPlayer.create(MainActivity.this, media); 
      mpButtonOne.start(); 
      mpButtonOne.setOnCompletionListener(new OnCompletionListener() { 
       public void onCompletion(MediaPlayer mpButtonOne) { 
        String primeS = secondaryText; 
        Uri media2 = Uri.parse(primeS); 
        mpButtonTwo = MediaPlayer.create(MainActivity.this, media2); 
        mpButtonTwo.start(); 
        mpButtonTwo.setOnCompletionListener(new soundListener1()); 
        { 
        } 
       } 

Я хочу случайно выбранный текст, который отображается в TextViews необходимо ввести в качестве места для звуковых файлов медиаплеера, слова имена звуковых файлов в моей папке сырым. Я немного новичок и действительно не уверен, что это правильный путь.

09-11 16:50:40.128: E/AndroidRuntime(12531): FATAL EXCEPTION: main 
09-11 16:50:40.128: E/AndroidRuntime(12531): java.lang.NullPointerException 
09-11 16:50:40.128: E/AndroidRuntime(12531): at com.spunktrunk.nastylittleman.MainActivity$1.onClick(MainActivity.java:62) 
09-11 16:50:40.128: E/AndroidRuntime(12531): at android.view.View.performClick(View.java:2408) 
09-11 16:50:40.128: E/AndroidRuntime(12531): at android.view.View$PerformClick.run(View.java:8816) 
09-11 16:50:40.128: E/AndroidRuntime(12531): at android.os.Handler.handleCallback(Handler.java:587) 
09-11 16:50:40.128: E/AndroidRuntime(12531): at android.os.Handler.dispatchMessage(Handler.java:92) 
09-11 16:50:40.128: E/AndroidRuntime(12531): at android.os.Looper.loop(Looper.java:123) 
09-11 16:50:40.128: E/AndroidRuntime(12531): at android.app.ActivityThread.main(ActivityThread.java:4669) 
09-11 16:50:40.128: E/AndroidRuntime(12531): at java.lang.reflect.Method.invokeNative(Native Method) 
09-11 16:50:40.128: E/AndroidRuntime(12531): at java.lang.reflect.Method.invoke(Method.java:521) 
09-11 16:50:40.128: E/AndroidRuntime(12531): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:876) 
09-11 16:50:40.128: E/AndroidRuntime(12531): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634) 
09-11 16:50:40.128: E/AndroidRuntime(12531): at dalvik.system.NativeStart.main(Native Method) 
09-11 16:50:40.128: W/ActivityManager(237): Force finishing activity com.spunktrunk.nastylittleman/.MainActivity 
+1

пожалуйста, напишите журналы LogCat .. –

+0

yes, post stacktrace – omainegra

+0

На какой линии вы столкнулись с проблемой? –

ответ

1

В зависимости от вашего URL, вызывая Media.create может быть возвращено нулевое значение (look at the documentation here). Если да, то ваш код пытается вызвать метод NULL, который вызывает ваш NPE (Null Pointer Exception)

Вы можете, конечно, изменить код так:

mpButtonOne = MediaPlayer.create(MainActivity.this, media); 
if (mButtonOne==null){ 
     //display a Toast message here 
     return; 
} 
mpButtonOne.start(); 
+0

Спасибо, мне удалось заставить его прекратить сбой, но теперь звук не воспроизводится, и я получаю эту ошибку '09-11 17: 44: 37.568: E/PlayerDriver (200): команда PLAYER_SET_DATA_SOURCE завершена с помощью ошибка или информация PVMFErrNotSupported 09-11 17: 44: 37.568: E/MediaPlayer (13621): error (1, -4) ' Я думаю, это означает, что он не может получить аудиофайл? Я неправильно создаю медиа Uri? Я в основном создаю строку из текстового представления, меняя ее на Uri, называемый носителем, затем называю это, когда создаю свой медиаплеер. – user2756111

+0

Или думать о том, есть ли способ вернуть значение «media» обратно в текстовое представление? – user2756111

+0

Ури должен ссылаться на [Единый идентификатор ресурса] [1]. Таким образом, это может быть локальный ресурс или один в Интернете. Какую ценность вы отправляете методу создания? [1] http://www.faqs.org/rfcs/rfc2396.html – DigCamara

Смежные вопросы