1

画像コンテンツ [ onDevice Mode ] を使用していくつかの画像を記述しようとしていますが、メモリが多すぎて、同じアプリで多くの画像を試すとクラッシュします。

なぜそうなるのかはわかりませんが、常にOutOfMemoryError Exception がスローされます。私の画像は約1〜2 MBのサイズです。

例外をグーグルで検索したときに有効にしましたandroid:largeHeap="true"が、2 つの画像を試した後でもクラッシュします。

また、使用して vars からメモリを解放しようとしましSystem.gc();たが、それでもメモリが多すぎます。

これは、onDevice で実行するために使用するコードです。

onCreate(); で
detector = FirebaseVision.getInstance() .getVisionLabelDetector();
ボタンをクリックしたとき

            detector.detectInImage(image)
                    .addOnSuccessListener(
                            new OnSuccessListener<List<FirebaseVisionLabel>>() {
                                @RequiresApi(api = Build.VERSION_CODES.M)
                                @Override
                                public void onSuccess(List<FirebaseVisionLabel> labels) {
                                    Toast.makeText(MainActivity.this, "Done", Toast.LENGTH_SHORT).show();
                                    setResult(labels, "onDevice Result : ", before);

                                    System.gc();
                                }
                            })
                    .addOnFailureListener(
                            new OnFailureListener() {
                                @Override
                                public void onFailure(@NonNull Exception e) {
                                    Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
                                    System.out.println("Error: " + e.getMessage());
                                }
                            });

誰でも私を助けることができますか?

4

1 に答える 1