android - 使用 Javacv 编程 android 项目出现异常

标签 android android-ndk proguard javacv

您好,我正在使用 Javacv 开发一个应用程序。该应用程序工作正常,直到我混淆构建。混淆后,应用程序在 jni 函数调用处崩溃。

-dontshrink
-dontoptimize
-dontpreverify

-dontwarn android.support.**

-keep class com.googlecode.javacv.**
-dontwarn com.googlecode.javacv.**

-keep class com.googlecode.javacpp.**
-dontwarn com.googlecode.javacpp.**

-keepclasseswithmembernames class * {
    native <methods>;
}

-keepattributes *Annotation*

我找不到任何可以解决我的问题的答案。我收到 NoSuchMethodError。任何人都可以帮助我。我正在使用最新版本的 Javacv 库。

最佳答案

您必须保留 native 方法(您已经在这样做)以及从 native 代码调用的 Java 方法。

您可以保留所有 javacv 和 javacpp 方法,如下所示:

-keep class com.googlecode.javacv.**{ *; }
-keepclassmembers class com.googlecode.javacv.** {
    <methods>;
}
-keep class com.googlecode.javacpp.**{ *; }
-keepclassmembers class com.googlecode.javacpp.** {
    <methods>;
}

此外,如果您想减少构建输出中的警告:

-dontwarn com.googlecode.javacv.**, com.googlecode.javacpp.**
-dontnote com.googlecode.javacv.**, com.googlecode.javacpp.**

关于android - 使用 Javacv 编程 android 项目出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21478125/

相关文章:

android - 在 NDK 项目中包含预构建的共享对象文件

android - ffmpeg - android ndk 构建汇编程序消息错误指令

java - ProGuard:警告:org.apache.commons.beanutils.BeanMap$2:找不到父类(super class)或接口(interface) org.apache.commons.collections.Transformer

android - 使用带有字体的特定字符时,文本会被截断

android - 发送和接收数据报包

android - 在代码中的随机点 (NDK) 中收到 SIGILL

java - Android 版本的 Microsoft Graph java Sdk 和 proguard 问题

android - Proguard 与 Unity3d 返回错误代码 1

android - 钛合金中像 Snapchat 一样在 View 之间滑动

java - 安装错误 : Unknown failure Android App