Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 模糊化openCV库的NoSuchMethodError_Android_Opencv_Proguard_Android Proguard - Fatal编程技术网

Android 模糊化openCV库的NoSuchMethodError

Android 模糊化openCV库的NoSuchMethodError,android,opencv,proguard,android-proguard,Android,Opencv,Proguard,Android Proguard,我正在为我的应用程序使用Android的OpenCV库。我使用minify和proguard作为我应用程序的发布版本。这是我的proguard规则。pro: -dontwarn okio.** -dontwarn org.joda.convert.** -dontwarn org.joda.time.** -keep class org.joda.time.** { *; } -keep interface org.joda.time.** { *;} -keep class android.s

我正在为我的应用程序使用Android的OpenCV库。我使用
minify
proguard
作为我应用程序的发布版本。这是我的
proguard规则。pro

-dontwarn okio.**
-dontwarn org.joda.convert.**
-dontwarn org.joda.time.**
-keep class org.joda.time.** { *; }
-keep interface org.joda.time.** { *;}
-keep class android.support.v7.widget.** { *; }
-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**
-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable
-keep public class * extends java.lang.Exception
-keep class com.theartofdev.edmodo.cropper.*
-ignorewarnings
将应用程序用作发布版本时,我有时会遇到以下错误:

Fatal Exception: java.lang.NoSuchMethodError: no non-static method "Lorg/opencv/core/CvException;.<init>(Ljava/lang/String;)V"
       at org.opencv.core.Mat.n_submat(Mat.java)
       at org.opencv.core.Mat.submat(Mat.java:839)
       at one.realnote.app.ImageAnchor.registerForDetectionAndTraking1(ImageAnchor.java:600)
.
.
.
它没有一个
init
方法,或者更确切地说,没有一个像异常所说的构造函数。课程的正确内容应为:

package org.opencv.core;

public class CvException extends RuntimeException {

    private static final long serialVersionUID = 1L;

    public CvException(String msg) {
        super(msg);
    }

    @Override
    public String toString() {
        return "CvException [" + super.toString() + "]";
    }
}
那么,我该如何告诉我的proguard离开CvException类,或者更好地让所有OpenCv代码保持原样,既不模糊也不缩小它


提前谢谢

我认为您必须在proguard文件中添加这一行:

-keep class org.opencv.** { *; }
您不需要混淆opencv模块

-keep class org.opencv.** { *; }