gpt4 book ai didi

java - 调用 onClick 时为 "OutOfMemoryError"(崩溃报告)

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:21:35 25 4
gpt4 key购买 nike

我的应用收到很多崩溃报告

当调用 onClickListener 时应用程序崩溃。仅 Android 版本 7.0 和 7.1 受到影响。我已经尝试在装有 Android 版本 7 的模拟器上启动该应用程序,但在模拟器上一切正常。

这是崩溃报告:

java.lang.OutOfMemoryError:
at dalvik.system.VMRuntime.newNonMovableArray (Native Method)
at android.graphics.BitmapFactory.nativeDecodeAsset (Native Method)
at android.graphics.BitmapFactory.decodeStream (BitmapFactory.java:655)
at android.graphics.BitmapFactory.decodeResourceStream (BitmapFactory.java:483)
at android.graphics.drawable.Drawable.createFromResourceStream (Drawable.java:1157)
at android.content.res.ResourcesImpl.loadDrawableForCookie (ResourcesImpl.java:720)
at android.content.res.ResourcesImpl.loadDrawable (ResourcesImpl.java:571)
at android.content.res.Resources.getDrawable (Resources.java:889)
at android.content.Context.getDrawable (Context.java:530)
at android.support.v4.content.ContextCompat.getDrawable (ContextCompat.java:351)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable (AppCompatDrawableManager.java:200)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable (AppCompatDrawableManager.java:188)
at android.support.v7.content.res.AppCompatResources.getDrawable (AppCompatResources.java:100)
at android.support.v7.widget.AppCompatImageHelper.setImageResource (AppCompatImageHelper.java:85)
at android.support.v7.widget.AppCompatImageView.setImageResource (AppCompatImageView.java:94)
at com.future.king.johncena.tabs.Tab1$1.onClick (Tab1.java:94)
at android.view.View.performClick (View.java:5675)
at android.view.View$PerformClick.run (View.java:22641)
at android.os.Handler.handleCallback (Handler.java:836)
at android.os.Handler.dispatchMessage (Handler.java:103)
at android.os.Looper.loop (Looper.java:203)
at android.app.ActivityThread.main (ActivityThread.java:6251)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1063)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:924)

这是我的 onClickListener:

public void button() {
button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View view) {
cleanUpMediaPlayer();
mp = MediaPlayer.create(getActivity(), R.raw.sound);

mp.start();
if(!sound1){
mp.setVolume(0.0f, 0.0f);
}

button.setImageResource(R.drawable.button1);
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
button.setImageResource(R.drawable.button);
}
});
}
});
}

第94行是

button.setImageResource(R.drawable.button1);

我希望有人能告诉我是什么导致了这次崩溃。

最佳答案

我强烈建议为 button 使用 selector state drawable 并更改按钮状态,而不是在 onClick 方法中设置图像资源。

参见 State List documentation供引用。

关于java - 调用 onClick 时为 "OutOfMemoryError"(崩溃报告),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54573234/

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