1. ホーム
  2. android

[解決済み] Android Canvas: 大きすぎるビットマップの描画

2022-07-22 18:24:32

質問

Ubuntu 16.04を使用しています。そして、Android Studio上で、エミュレータで私のアプリケーションを実行しようとすると、次のエラーが発生します。

FATAL EXCEPTION: メイン プロセス。 ここにプロジェクト名 PID: 2528 java.lang.RuntimeException: Canvas: 大きすぎる(216090000bytes)ビットマップを描画しようとしています。 at android.view.DisplayListCanvas.throwIfCannotDraw(DisplayListCanvas.java:260) at android.graphics.Canvas.drawBitmap(Canvas.java:1415)にて、ビットマップを描画しています。 at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:528)にて確認。 at android.widget.ImageView.onDraw(ImageView.java:1316)。 at android.view.View.draw(View.java:17185)にて。 at android.view.View.updateDisplayListIfDirty(View.java:16167) at android.view.View.draw(View.java:16951)にて。 at android.view.ViewGroup.drawChild(ViewGroup.java:3727)にて。 at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3513)にて。 at android.view.View.updateDisplayListIfDirty(View.java:16162) at android.view.View.draw(View.java:16951)にて。 at android.view.ViewGroup.drawChild(ViewGroup.java:3727)にて。 at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3513)@@。

などなど...

AMD 上でエミュレーターを実行できるようにするために、sym-link を作成する必要がありました。これが問題の一部であるかどうかはわかりません。そして、なぜこのようなことが起こり続けるのか、どうしても理解できません。私のグループには、同じエミュレートされた電話機と SDK でプロジェクトをうまくエミュレートしている他の人がいます。

どのように解決するのですか?

の中に画像を移動させる(高解像度)。 描画可能 から drawable-xxhdpi . しかし、アプリ開発では、大きな画像を使う必要はありません。APKのファイルサイズが大きくなってしまいます。