React Native 应用程序包中的 .tflite 文件是什么以及如何删除它们

What are .tflite files in React Native app bundles and how to remove them

我的移动应用程序是用 React Native 编写的,并使用 Expo 作为一个包构建,然后上传到 Google 播放.

Google Play 控制台警告我有关捆绑包的大小,并提示我删除以下最大的文件:

有谁知道这些文件是什么以及如何将它们从我的应用程序包中删除? Google 告诉我 .tflite 适用于 Tensor Flow Lite,但我确定我没有使用它。

这些是人脸检测中使用的人脸模型。

这些文件用于人脸检测和一些手势相关的功能。这些是在您使用 react-native-camera 时生成的。如果您不使用这些功能,您可以取消link并卸载库并重新安装和link。

记得在 app/build.gradle 中使用 react-native-camera 作为通用

默认配置{ ………… ………… missingDimensionStrategy 'react-native-camera', 'general' ………… ………… }

它对我有用,我想它对你也有用。

对我来说,这些图书馆附有 @react-native-firebase/ml

删除 @react-native-firebase/ml 后,我的最终 APK 大小减少了 15MB

你首先需要弹出来剥离那些模型,

expo eject

然后导航到 app/build.gradle

dependencies {
...
    // strip face detection from mlkit
    implementation (project(':react-native-camera')){
        exclude group: 'com.google.mlkit', module: 'face-detection'
    }
...
}

或者,如果您不完全想要 MLKit 编辑 app/build.gradle

 defaultConfig {
       ...
        missingDimensionStrategy 'react-native-camera', 'general'
       ...
    }