Android 在通知栏上添加自定义seekbar时出现空指针异常

Android 在通知栏上添加自定义seekbar时出现空指针异常,android,Android,我开发了一个音频媒体播放器应用程序,但当我在通知栏上创建此应用程序的某些部分时,出现了一个问题,例如您可以在通知栏中播放暂停一首歌曲和下一首、上一首歌曲,还可以添加通知栏,但当在通知栏中添加自定义seekbar时,出现了一些错误,以下是我的代码和错误。。。 通知栏上显示的Xml代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/

我开发了一个音频媒体播放器应用程序,但当我在通知栏上创建此应用程序的某些部分时,出现了一个问题,例如您可以在通知栏中播放暂停一首歌曲和下一首、上一首歌曲,还可以添加通知栏,但当在通知栏中添加自定义seekbar时,出现了一些错误,以下是我的代码和错误。。。 通知栏上显示的Xml代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <!-- Progress Bar/Seek bar -->
    <SeekBar
            android:id="@+id/songProgressBarn"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:layout_marginRight="20dp" 
             android:layout_marginLeft="20dp"
             android:layout_marginBottom="20dp"
             android:layout_above="@id/player_footer_bg"
             android:thumb="@drawable/seek_handler"
             android:progressDrawable="@drawable/seekbar_progress"
             android:paddingLeft="6dp"
             android:paddingRight="6dp"/>

     <LinearLayout 
        android:id="@+id/player_footer_bg"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_alignParentBottom="true"
        android:background="@layout/player_footer_db"
        android:gravity="center">

        <!-- Player Buttons -->
        <LinearLayout 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center_vertical"
            android:background="@layout/rounded_corner"
            android:paddingLeft="10dp"
            android:paddingRight="10dp">
            <!-- Previous Button -->
            <ImageButton
                android:id="@+id/btnPrevious" 
                android:src="@drawable/btn_previous"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@null"/>
             <!-- Play Button -->
            <ImageButton 
                android:id="@+id/btnPlay"
                android:src="@drawable/btn_play"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@null"/>
            <!-- Next Button -->
            <ImageButton 
                android:id="@+id/btnNext"
                android:src="@drawable/btn_next"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@null"/>
        </LinearLayout>
    </LinearLayout>

</LinearLayout>
我的广播接收代码是

package com.Audio.audioplayer;

import java.io.IOException;

import android.appwidget.AppWidgetManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.net.ConnectivityManager;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat.Builder;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageButton;
import android.widget.SeekBar;
import android.widget.Toast;

public class MyReceiver extends BroadcastReceiver implements  Listenercalling{
    public static final String CUSTOM_INTENT = "jason.wei.custom.intent.action.TEST";
    public static final String PLAY_ACTION = "Play";
    public static final String PREVIOUS_ACTION = "Previous";
    public static final String NEXT_ACTION = "NEXT";
    private static Listenercalling ls=new PlayerAudioActivity();
    private static final String TAG = "waaaawoooooooooOOOOOOjnjkhdfku";
    public void onReceive(Context context, Intent intent) {
        //btnplay=(ImageButton)btnplay;
         final String action=intent.getAction();
         //Log.v("Play Call"+action,"Pressed YES");
//       if(PLAY_ACTION.equals(action)) {
//              Log.v("Play Call","Pressed YES");
//          } else if(PREVIOUS_ACTION.equals(action)) {
//              Log.v("Previous Call","Pressed NO");
//          } else if(NEXT_ACTION.equals(action)) {
//              Log.v("Next Call","Pressed MAYBE");
//          }
         if(action.equals("btnplay"))
         {
            ls.getplay();
             Log.d("play clicked,,,,,,,,,,,,,,,,,,", ""+action);

         }
         if(action.equals("btnnext"))
         {
             ls.getnext();
             Log.d("next clicked,,,,,,,,,,,,,,,,,,", ""+action);

         }
         if(action.equals("btnprevious"))
         {
             ls.getprevious();
             Log.d("previous clicked,,,,,,,,,,,,,,,,,,", ""+action);

         }
        // if(AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(action)){

//           Bundle extras=intent.getExtras();
//           String ieString=extras.getString("Locale");
    //       try{
//               final int Appwidgid=extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID,AppWidgetManager.INVALID_APPWIDGET_ID);
//               if(Appwidgid!=AppWidgetManager.INVALID_APPWIDGET_ID)
//               {
//                   this.onDeleted(context, new int[] { Appwidgid });
//               }
//            else {
//                onReceive(context, intent);
//                 }
//              context.startService(new Intent(context,PlayerAudioActivity.class));
//              Log.i(TAG,"Starting Service ConnectivityListener");
//          }catch(Exception e){
//              Log.e(TAG,e.toString());
//          }
//       }
    }



    public void setMyInterface(PlayerAudioActivity pl)
    {
        Log.d("wawwwooo"+pl, "lfkero");

        ls=pl;
    }
    @Override
    public void getplay() {

        //Log.d("wawwwooo", "getplayreciever calling");
        PlayerAudioActivity pl=new PlayerAudioActivity();   
        ls.getplay(); 

    }

    public void getnext()
    {
         PlayerAudioActivity pl=new PlayerAudioActivity();  
            ls.getnext(); 
    }
    public void getprevious()
    {
         PlayerAudioActivity pl=new PlayerAudioActivity();  
            ls.getprevious(); 
    }
}
errorz正在跟踪

05-01 11:41:19.627: W/dalvikvm(4942): threadid=1: thread exiting with uncaught exception (group=0x41c099a8)
05-01 11:41:19.630: E/AndroidRuntime(4942): FATAL EXCEPTION: main
05-01 11:41:19.630: E/AndroidRuntime(4942): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.Audio.audioplayer/com.Audio.audioplayer.PlayerAudioActivity}: java.lang.NullPointerException
05-01 11:41:19.630: E/AndroidRuntime(4942):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2306)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at android.app.ActivityThread.access$600(ActivityThread.java:156)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1340)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at android.os.Looper.loop(Looper.java:153)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at android.app.ActivityThread.main(ActivityThread.java:5299)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at java.lang.reflect.Method.invokeNative(Native Method)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at java.lang.reflect.Method.invoke(Method.java:511)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at dalvik.system.NativeStart.main(Native Method)
05-01 11:41:19.630: E/AndroidRuntime(4942): Caused by: java.lang.NullPointerException
05-01 11:41:19.630: E/AndroidRuntime(4942):     at com.Audio.audioplayer.SongsManager.getPlayList(SongsManager.java:20)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at com.Audio.audioplayer.PlayerAudioActivity.onCreate(PlayerAudioActivity.java:101)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at android.app.Activity.performCreate(Activity.java:5122)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)
05-01 11:41:19.630: E/AndroidRuntime(4942):     ... 11 more

现在还没有时间更深入地了解NPE的原因,但我首先要纠正的是你构建PendingEvents的方式。编辑评论时5分钟过期!它们必须相互区别。为了获得这种区别,为每个PI设置不同的请求代码第二个参数。例如:getBroadcastthis,1,switchIntent1,PendingEvent.FLAG_UPDATE_CURRENT,getBroadcastthis,2,switchIntent2,PendingEvent.FLAG_UPDATE_CURRENT,等等。还请注意,对于特定的标志值,第四个参数0已更改
05-01 11:41:19.627: W/dalvikvm(4942): threadid=1: thread exiting with uncaught exception (group=0x41c099a8)
05-01 11:41:19.630: E/AndroidRuntime(4942): FATAL EXCEPTION: main
05-01 11:41:19.630: E/AndroidRuntime(4942): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.Audio.audioplayer/com.Audio.audioplayer.PlayerAudioActivity}: java.lang.NullPointerException
05-01 11:41:19.630: E/AndroidRuntime(4942):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2306)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at android.app.ActivityThread.access$600(ActivityThread.java:156)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1340)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at android.os.Looper.loop(Looper.java:153)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at android.app.ActivityThread.main(ActivityThread.java:5299)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at java.lang.reflect.Method.invokeNative(Native Method)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at java.lang.reflect.Method.invoke(Method.java:511)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at dalvik.system.NativeStart.main(Native Method)
05-01 11:41:19.630: E/AndroidRuntime(4942): Caused by: java.lang.NullPointerException
05-01 11:41:19.630: E/AndroidRuntime(4942):     at com.Audio.audioplayer.SongsManager.getPlayList(SongsManager.java:20)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at com.Audio.audioplayer.PlayerAudioActivity.onCreate(PlayerAudioActivity.java:101)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at android.app.Activity.performCreate(Activity.java:5122)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)
05-01 11:41:19.630: E/AndroidRuntime(4942):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)
05-01 11:41:19.630: E/AndroidRuntime(4942):     ... 11 more