【问题标题】:android call method from another class nullpointerexceptionandroid从另一个类nullpointerexception调用方法
【发布时间】:2015-03-27 04:20:57
【问题描述】:

我有一个名为HelperActivity.class 的活动,我还有另一个扩展SherlockFragment 的类。 SherlockFragment 有三个方法playAudio(),pauseAudio(),stopAudio();

像这样;

public void playAudio() {

        mediaPlayer.start();

        btn_play.setEnabled(false);
        pDialog.dismiss();

        btn_pause.setEnabled(true);
        btn_stop.setEnabled(true);
    }

我想从HelperActivty.class 调用这个方法。我尝试了很多方法,但每次都得到NullPointerException。我尝试发送上下文并尝试将我的方法更改为静态但结果相同。请帮助。 头等舱

public class HelperActivity extends Activity

二等;

public class RadioStream extends SherlockFragment implements OnClickListener, OnTouchListener, OnCompletionListener, OnBufferingUpdateListener

错误;

FATAL EXCEPTION: main
01-28 02:40:50.390: E/AndroidRuntime(2915): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fedorvlasov.mostban/com.fedorvlasov.mostban.HelperActivity}: java.lang.NullPointerException
01-28 02:40:50.390: E/AndroidRuntime(2915):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2262)
01-28 02:40:50.390: E/AndroidRuntime(2915):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2316)
01-28 02:40:50.390: E/AndroidRuntime(2915):     at android.app.ActivityThread.access$700(ActivityThread.java:158)
01-28 02:40:50.390: E/AndroidRuntime(2915):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1296)
01-28 02:40:50.390: E/AndroidRuntime(2915):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-28 02:40:50.390: E/AndroidRuntime(2915):     at android.os.Looper.loop(Looper.java:176)
01-28 02:40:50.390: E/AndroidRuntime(2915):     at android.app.ActivityThread.main(ActivityThread.java:5365)
01-28 02:40:50.390: E/AndroidRuntime(2915):     at java.lang.reflect.Method.invokeNative(Native Method)
01-28 02:40:50.390: E/AndroidRuntime(2915):     at java.lang.reflect.Method.invoke(Method.java:511)
01-28 02:40:50.390: E/AndroidRuntime(2915):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
01-28 02:40:50.390: E/AndroidRuntime(2915):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
01-28 02:40:50.390: E/AndroidRuntime(2915):     at dalvik.system.NativeStart.main(Native Method)
01-28 02:40:50.390: E/AndroidRuntime(2915): Caused by: java.lang.NullPointerException
01-28 02:40:50.390: E/AndroidRuntime(2915):     at com.fedorvlasov.mostban.RadioStream.playAudio(RadioStream.java:310)
01-28 02:40:50.390: E/AndroidRuntime(2915):     at com.fedorvlasov.mostban.HelperActivity.onCreate(HelperActivity.java:52)
01-28 02:40:50.390: E/AndroidRuntime(2915):     at android.app.Activity.performCreate(Activity.java:5326)
01-28 02:40:50.390: E/AndroidRuntime(2915):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
01-28 02:40:50.390: E/AndroidRuntime(2915):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2225)
01-28 02:40:50.390: E/AndroidRuntime(2915):     ... 11 more
01-28 02:40:52.054: I/Process(2915): Sending signal. PID: 2915 SIG: 9

【问题讨论】:

  • 你知道 ActionBarSherlock 已被弃用,对吧?
  • 是的@MD 是对的...您的 mediaPlayer 变量为空...您必须先处理 mediaPlayer 的空值。
  • 你是如何从RadioStream 调用playAudio() 方法的?
  • @ρяσѕρєя K 正常通话。案例 R.id.btn_play: playAudio();休息;
  • @M D 其实媒体播放器正在运行,为什么会为空?

标签: java android class methods nullpointerexception


【解决方案1】:

请确保,无论您在此类中调用此方法的何处,您的mediaPlayer 对象都已初始化。如果您想自己查看问题,请在代码的第一行放置一个断点并查看该对象是否为空。

【讨论】:

  • 其实mediaplayer正在运行,为什么会出现null?如何访问当前正在运行的媒体播放器?
猜你喜欢
  • 1970-01-01
  • 2019-03-24
  • 2015-03-15
  • 2015-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多