ImageView setsetImageResource不断在手机上崩溃,但在模拟器或平板电脑上没有崩溃

时间:2018-07-23 06:45:20

标签: android android-resources android-image

正在开发一个扑克游戏,最初我有5张纸牌并在纸牌背面显示。然后将显示带有卡片新图像的第一组图像,并且仍然可以。抽出另一张卡后,setImageResource()使用电话触发了InvocationTargetException。并且在手机中运行时,它与debugging崩溃,无法执行android IllegalStateException的方法。有时它在第二张卡,第三张或第四张卡上崩溃了。没有图案。我没有使用onClick()或我的emulator遇到此问题。仅发生在我的2部手机上。任何帮助将不胜感激。

tablet

2 个答案:

答案 0 :(得分:1)

这是内存不足的问题,OOM

Caused by: java.lang.OutOfMemoryError: Failed to allocate a 26269068 byte allocation with 3836592 free bytes and 3MB until OOM

我不确定您如何创建图像并加载图像,一些代码会有所帮助。一般来说,让Glide等库来处理图像加载。这些库进行大小采样,并在加载图像时减小大小。它大大减少了OOM问题。

答案 1 :(得分:0)

请尝试以下代码:

int id = getResources().getIdentifier("yourpackagename:drawable/" + StringGenerated, null, null);
imageview.setImageResource(id);

或使用此

Drawable image = ImageOperations(context,ed.toString(),"image.jpg");
ImageView imgView = new ImageView(context);
imgView = (ImageView)findViewById(R.id.image1);
imgView.setImageDrawable(image);