Я пытаюсь использовать содержимое изображения [ onDevice Mode ] для описания некоторых изображений, но это занимает слишком много памяти, и если я попробовал много изображений в одном приложении, вылетает .
Я не знаю, почему это происходит, но всегда выдает OutOfMemoryError Исключение.мои изображения имеют размер около 1-2 МБ.
, когда я гуглил исключение, я включил android:largeHeap="true"
, но все равно вылетает после попытки 2 изображений.
Я также пытался освободить память от переменных, используя System.gc();
, но все равно занимал слишком много памяти.
Вот код, который я использую для этого на устройстве:
в 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());
}
});
Может ли кто-нибудь помочь мне?