Apk 大小:Firebase MLKit 包含大型原生库,即使未使用也是如此

Apk size: Firebase MLKit includes large native library even if not in use

我在我的应用中使用 Firebase MLKit,就像这样 FirebaseVision.getInstance().cloudImageLabeler

我只使用它的云版本。但是当我查看 apk 时,它包含来自 Firebase 的大型原生库,总共 10Mb,用于 4 种架构。这占我应用程序大小的 80%。它们被命名为每个体系结构 libclassifier_jni.so

在使用 objdump -d 进一步检查从 apk 中提取的库后,我发现这些库与设备上的图像标签有关。它有像 Java_com_google_android_libraries_vision_visionkit_recognition_classifier_NativeClassifier_initialize.

这样的符号

我确定我没有在设备上使用任何 Firebase ML。

如何删除这些库并减小 apk 的大小?

该版本是发布类型并且有混淆规则。

编辑:

相关依赖项:

    implementation 'com.google.firebase:firebase-core:17.2.0'
    implementation 'com.google.firebase:firebase-ml-vision:23.0.0'
    implementation 'com.google.firebase:firebase-ml-vision-image-label-model:18.0.0'
    implementation 'com.google.firebase:firebase-auth:19.0.0'
    implementation 'com.google.firebase:firebase-messaging:20.0.0'
    implementation 'com.google.firebase:firebase-functions:19.0.1'

更新到最新也没关系

您的 gradle 文件中包含什么依赖项?

如果您看到的是 visionkit,那么您可能不小心包含了 com.google.firebase:firebase-ml-vision-object-detection-model 或视觉内部 sdk。

云图像标记所需的唯一依赖项是 com.google.firebase:firebase-ml-vision