首页 > 解决方案 > 机器学习套件占用太多内存 [Android]

问题描述

我正在尝试使用图像内容 [ 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());
                                }
                            });

谁能帮我?

标签: androidperformancefirebasefirebase-mlkit

解决方案


我的问题是图像质量太高并且没有压缩图像

图像必须在对其进行初始化处理之前进行压缩


推荐阅读