Firebase ML Kit proguard 问题

凉爽的

我正在开发一个使用 Firebase ML Kit 自定义模型的项目,并在使用以下代码时遇到了 proguard 问题。不幸的是,我在官方网站github repo上都没有找到任何 proguard 规则

如果我添加了-dontobfuscate,则以下代码有效。但我希望我的项目被混淆。

import com.google.android.gms.tasks.Task
import com.google.android.gms.tasks.Tasks
import com.google.firebase.ml.common.FirebaseMLException
import com.google.firebase.ml.common.modeldownload.FirebaseLocalModel
import com.google.firebase.ml.common.modeldownload.FirebaseModelManager
import com.google.firebase.ml.custom.FirebaseModelDataType
import com.google.firebase.ml.custom.FirebaseModelInputOutputOptions
import com.google.firebase.ml.custom.FirebaseModelInputs
import com.google.firebase.ml.custom.FirebaseModelInterpreter
import com.google.firebase.ml.custom.FirebaseModelOptions

fun init(context: Context) {
    val modelOptions = FirebaseModelOptions.Builder()
        .setLocalModelName("mobilenet_v2_1.0_224_quant")
        .build()

    val localModelSource = FirebaseLocalModel.Builder(MODEL_NAME).setAssetFilePath("mobilenet_v2_1.0_224_quant.tflite").build()

    val firebaseModelManager = FirebaseModelManager.getInstance().apply {
        registerLocalModel(localModelSource)
    }

    interpreter = FirebaseModelInterpreter.getInstance(modelOptions)
    labelList = loadLabelList(context.applicationContext)

    val inputDims = intArrayOf(DIM_BATCH_SIZE, DIM_IMG_SIZE, DIM_IMG_SIZE, DIM_PIXEL_SIZE)
    val outputDims = intArrayOf(1, labelList.size)

    val dataType = FirebaseModelDataType.BYTE

    dataOptions = FirebaseModelInputOutputOptions.Builder()
        .setInputFormat(0, dataType, inputDims)
        .setOutputFormat(0, dataType, outputDims)
        .build()
}

崩溃是:

java.lang.UnsatisfiedLinkError: No implementation found for java.lang.String r.c.a.e.b() (tried Java_r_c_a_e_b and Java_r_c_a_e_b__)
    at r.c.a.e.b(Native Method)
    at com.google.android.gms.internal.firebase_ml.zzpe.<clinit>(SourceFile:1)
    at com.google.firebase.ml.custom.FirebaseModelInterpreter.<init>(SourceFile:16)
    at com.google.firebase.ml.custom.FirebaseModelInterpreter.zza(SourceFile:6)
    at com.google.firebase.ml.custom.FirebaseModelInterpreter.getInstance(SourceFile:1)

这是我的 proguard.txt 中的规则

-keepnames class com.google.firebase.** { *; }
-keepnames class com.google.android.gms.** { *; }

任何指南/建议表示赞赏!

Shiyu

这很有趣,因为 FirebaseModelInterpreter 本身不包含任何本机代码。

您能否尝试保留本机方法并查看是否仍然看到崩溃?

-keepclasseswithmembernames class * { native <methods>; }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Firebase ML KIT无法识别古吉拉特语

添加 firebase ML-kit 时的依赖项冲突

如何使用Firebase ML Kit查找图像中的标记?

如何使用Firebase ML Kit识别条形码?

Firebase ML Kit可以用作人脸验证吗

Firebase ML Kit 人脸检测,无法检索实例 ID

Firebase ML Kit:“内部错误”异常,但输入正确且配置正确

Firebase ML Kit可以用于手写文本吗?

为什么 Firebase ML Kit 每次都为同一张脸检测不同的轮廓值

使用Firebase ML Kit无法读取更多30个字符的条形码

通过相机的Android Firebase ML-Kit实时条形码检测

是否可以在 Unity3D 上集成 Firebase ML-Kit?

Firebase ML kit API是否可以与离子一起使用?

Firebase Android ML Kit:在QR代码上隐藏显示值的方法

iOS Firebase ML Kit 简单音频识别“无法为给定模型创建 TFLite 解释器”

React-Native Firebase ML Kit 视觉图像标签不适用于 iOS

在没有cocapods的iOS上使用Firebase ML Kit时,GoogleMobileVision中的链接器错误

如何使用 Firebase ML Kit 创建用于条码扫描的模块化类

如何避免在 firebase ML Kit 的人脸检测 API 中捕获模糊图像

使用自定义TFLITE的Firebase ML Kit对Android上的各种输出产生相同的推断

我如何找到上下文并从Android Firebase ML-Kit BarcodeScannerProcessor onSuccess启动新的活动

Firebase ML Kit功能是否异步,以便我可以使用同一检测器运行多个检测?

Proguard混淆枚举问题

Android Proguard发布问题

mupdf库的Proguard问题

Instabug Proguard问题

Gradle 3.0.0的Proguard问题

ML Kit iOS人脸检测错误

Firebase 11.4.2 Proguard错误