Android复制音乐播放器代码后Handler相关编译错误求解
问题解决方案
错误根源
- 导包错误:当前代码导入的是
java.util.logging.Handler(Java日志处理工具类),但你需要的是Android系统提供的android.os.Handler(用于线程间通信的消息处理类),两个类功能完全不相关,因此触发了两个编译错误。
修复步骤
- 替换错误导包:
删除代码中的import java.util.logging.Handler;,替换为以下内容:
import android.os.Handler; import android.os.Looper; import androidx.annotation.NonNull;
- 修改Handler初始化代码:
原Handler初始化代码未指定Looper,且缺少方法重写注解,替换为以下代码即可兼容所有Android版本:
@SuppressLint("HandlerLeak") Handler handler = new Handler(Looper.getMainLooper()) { @Override public void handleMessage(@NonNull Message msg) { mSeekBarTime.setProgress(msg.what); } };
- 验证修复:修改完成后重新编译,两个报错会直接消失,子线程发送消息更新SeekBar进度的功能可以正常运行。
内容的提问来源于stack exchange,提问作者Saint Blue
相关产品推荐
相关产品推荐

