Android mupdf库的Proguard问题

Android mupdf库的Proguard问题,android,android-studio,proguard,mupdf,Android,Android Studio,Proguard,Mupdf,在我尝试构建发布版本之前,我的应用程序运行良好。我收到以下错误消息: java.lang.NoSuchFieldError:没有名为='globals'signature='J'的字段 Lcom/artifex/mupdfdemo/MuPDFCore类中 显然问题出在我的mupdf库中。我在没有使用proguard的情况下将这个库构建为aar文件。以下是mupdf库的my build.gradle: apply plugin: 'android-library' android { c

在我尝试构建发布版本之前,我的应用程序运行良好。我收到以下错误消息:

java.lang.NoSuchFieldError:没有名为='globals'signature='J'的字段 Lcom/artifex/mupdfdemo/MuPDFCore类中

显然问题出在我的mupdf库中。我在没有使用proguard的情况下将这个库构建为aar文件。以下是mupdf库的my build.gradle:

apply plugin: 'android-library'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.0"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}
正如您所看到的,runProguard是错误的

接下来是我的应用程序的build.gradle文件:

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion '19.0.0'

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 19
        versionCode 6
        versionName "2.0"
    }

    signingConfigs {

    }

    buildTypes {
        release {
            runProguard true
            proguardFile file('key/proguard-android.txt')
        }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.artifex.mupdfdemo:mupdfreader-lib:1.0.0@aar'
}
下面是proguard-android.txt文件:

-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose
-dontoptimize
-dontpreverify

-keepattributes *Annotation*
-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {
    native <methods>;
}

-keepclassmembers public class * extends android.view.View {
   void set*(***);
   *** get*();
}

-keepclassmembers class * extends android.app.Activity {
   public void *(android.view.View);
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}

-keepclassmembers class **.R$* {
    public static <fields>;
}

-dontwarn android.support.**    
-dontwarn android.support.v4.** -keep class android.support.v4.** { *; }
-dontwarn android.support.v7.** -keep class android.support.v7.** { *; }

-keep public class com.artifex.mupdfdemo.MuPDFActivity
-keep public class com.artifex.mupdfdemo.MuPDFCore
-dontusemixedcaseclassnames
-DontskipnonPublicLibraryClass
-冗长的
-dontoptimize
-不要翻转
-keepattributes*注释*
-保持公共类com.google.vending.licensing.ILicensingService
-保持公共类com.android.vending.licensing.ILicensingService
-KeepClassSwithMemberNames类*{
本地人;
}
-keepclassmembers公共类*扩展了android.view.view{
无效集*(***);
***得到*();
}
-keepclassmembers类*扩展了android.app.Activity{
public void*(android.view.view);
}
-keepclassmembers枚举*{
公共静态**[]值();
公共静态**valueOf(java.lang.String);
}
-keep class*实现android.os.Parcelable{
公开静态最终android.os.Parcelable$Creator*;
}
-keepclassmembers类**.R$*{
公共静态;
}
-dontwarn android。支持。**
-dontwarn android.support.v4.*-保留类android.support.v4.*{*;}
-dontwarn android.support.v7.*-保留类android.support.v7.*{*}
-保持公共类com.artifex.mupdfdemo.MuPDFActivity
-保留公共类com.artifex.mupdfdemo.MuPDFCore
如您所见,MuPDFCore被添加到我的proguard文件中。有人能帮忙告诉我问题出在哪里吗?非常感谢。

添加这一行

-keep class com.artifex.mupdfdemo.** {*;}
解决了这个问题


我总是在将问题发布到stackoverflow后找到问题的解决方案。无论如何,它可能会帮助其他人。

谢谢分享您的知识。:)为回答您的问题向公众竖起大拇指您有64位版本的MuPDF库吗?