我正在尝试使用图像内容 [ onDevice Mode ] 来描述一些图像,但它占用了太多内存,如果我在同一个应用程序中尝试了许多图像,它就会崩溃。
我不知道为什么会发生这种情况,但它总是抛出OutOfMemoryError异常。我的图像大小约为 1-2 MB。
当我用谷歌搜索异常时,我启用了android:largeHeap="true"
但在尝试 2 张图片后仍然崩溃。
我还尝试从 vars 中释放内存,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());
}
});
谁能帮我?