Bitmap.copy函数中的java.lang.OutOfMemoryError

Bitmap.copy函数中的java.lang.OutOfMemoryError,java,android,bitmap,Java,Android,Bitmap,我以为同一个物体有两个副本。这可能是问题所在。但我不知道如何解决。请帮助我。提前谢谢 logcat java.lang.OutOfMemoryError:请求的大小超过了VM限制。 此错误表示Java应用程序试图分配一个数组,该数组的大小大于堆的大小 OutOfMemoryError扩展了VirtualMachineeError类,该类表示JVM已损坏,或已耗尽资源,无法运行 验证应用程序没有存储不必要的信息。 仅存储和维护项目所需的信息 正确执行Java应用程序 请阅读以下文件 你读过吗

我以为同一个物体有两个副本。这可能是问题所在。但我不知道如何解决。请帮助我。提前谢谢

logcat


java.lang.OutOfMemoryError:
请求的大小超过了VM限制。 此错误表示Java应用程序试图分配一个数组,该数组的大小大于堆的大小

OutOfMemoryError扩展了VirtualMachineeError类,该类表示JVM已损坏,或已耗尽资源,无法运行

验证应用程序没有存储不必要的信息。 仅存储和维护项目所需的信息 正确执行Java应用程序

请阅读以下文件

  • 你读过吗
    protected void onDraw(Canvas canvas) {
    
            Drawable drawable = getDrawable();
    
            if (drawable == null) {
                return;
            }
    
            if (getWidth() == 0 || getHeight() == 0) {
                return;
            }
            Bitmap b = ((BitmapDrawable) drawable).getBitmap();
    // I got error in this line.
            Bitmap bitmap = b.copy(Bitmap.Config.ARGB_8888, true);
    
            int w = getWidth(), h = getHeight();
    
            Bitmap roundBitmap = getRoundedCroppedBitmap(bitmap, w);
            canvas.drawBitmap(roundBitmap, 0, 0, null);
    
        }
    
    10-18 11:04:33.208 32110-32110/com.example.rajitha.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
    10-18 11:04:33.208 32110-32110/com.example.rajitha.myapplication E/AndroidRuntime: java.lang.OutOfMemoryError
    10-18 11:04:33.208 32110-32110/com.example.rajitha.myapplication E/AndroidRuntime:     at android.graphics.Bitmap.nativeCopy(Native Method)
    10-18 11:04:33.208 32110-32110/com.example.rajitha.myapplication E/AndroidRuntime:     at android.graphics.Bitmap.copy(Bitmap.java:403)
    10-18 11:04:33.208 32110-32110/com.example.rajitha.myapplication E/AndroidRuntime:     at com.example.rajitha.myapplication.RoundedImageView.onDraw(RoundedImageView.java:39)
    10-18 11:04:33.208 32110-32110/com.example.rajitha.myapplication E/AndroidRuntime:     at android.view.View.draw(View.java:11054)
    10-18 11:04:33.208 32110-32110/com.example.rajitha.myapplication E/AndroidRuntime:     at android.view.View.getDisplayList(View.java:10493)
    10-18 11:04:33.208 32110-32110/com.example.rajitha.myapplication E/AndroidRuntime:     at android.view.ViewGroup.drawChild(ViewGroup.java:2958)
    10-18 11:04:33.208 32110-32110/com.example.rajitha.myapplication E/AndroidRuntime:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2596)
    10-18 11:04:33.208 32110-32110/com.example.rajitha.myapplication E/AndroidRuntime:     at android.view.View.getDisplayList(View.java:10491)
    10-18 11:04:33.208 32110-32110/com.example.rajitha.myapplication E/AndroidRuntime:     at android.view.ViewGroup.drawChild(ViewGroup.java:2958)
    10-18 11:04:33.208 32110-32110/com.example.rajitha.myapplication E/AndroidRuntime:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2596)
    10-18 11:04:33.208 32110-32110/com.example.rajitha.myapplication E/AndroidRuntime:     at android.view.View.draw(View.java:11057)
    10-18 11:04:33.208 32110-32110/com.e