gpt4 book ai didi

android - 将上下文传递给另一个类时,出现致命异常

转载 作者:太空狗 更新时间:2023-10-29 13:30:31 25 4
gpt4 key购买 nike

有人能告诉我为什么在我的主要 Activity 中调用这个类时会返回致命异常吗?

package com.b1ackjosh.kana;

import android.content.Context;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.widget.TextView;

public class SoundThread extends Thread implements Runnable, OnCompletionListener {

Thread t = null;
int place, lvl;
boolean tStatus = false;
Context context;

SoundThread(int l, int p, Context c) {
p = place;
c = context;
l = lvl;
};

public void run() {

MediaPlayer audioQuestion = MediaPlayer.create(context, QuestionArray.audioArray[lvl][place]);

audioQuestion.setOnCompletionListener(this);
audioQuestion.start();

};

public void pause() {
tStatus = false;

try {
t.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t = null;
}

public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
mp.release();
}

}

这就是我在主要 Activity 中运行它的方式:

public void playQuizAudio(final int i) {
new SoundThread(lvl, i, this).start();
}

我只是将一个整数传递给此方法,每次运行它时,我的应用程序都会失败并崩溃到主屏幕。这很烦人,但如果我在我的主要 Activity 中包含相同的代码,它运行良好,但我认为我有一些其他线程问题,这就是为什么我选择创建一个单独的类来管理它。此外,如果我使用音频中的静态链接,它也会失败,所以我知道它必须是上下文。对此的任何帮助将不胜感激。

这也是我从 LogCat 得到的:

04-12 03:52:43.981: E/AndroidRuntime(3129): FATAL EXCEPTION: Thread-98
04-12 03:52:43.981: E/AndroidRuntime(3129): java.lang.NullPointerException
04-12 03:52:43.981: E/AndroidRuntime(3129): at android.media.MediaPlayer.create(MediaPlayer.java:731)
04-12 03:52:43.981: E/AndroidRuntime(3129): at com.b1ackjosh.kana.SoundThread.run(SoundThread.java:23)

最佳答案

糟糕,你有:

SoundThread(int l, int p, Context c)  {
p = place;
c = context;
l = lvl;
};

这是回到前面!应该是:

SoundThread(int l, int p, Context c)  {
place = p;
context = c;
lvl = l;
};

编译器应该已经警告过你了,所以请注意。此外:

public class SoundThread extends Thread  implements Runnable

是多余的。选择一个或另一个,建议通常是 Runnable:

public class SoundThread implements Runnable

关于android - 将上下文传递给另一个类时,出现致命异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15962863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com