mupdf库的Proguard问题

Bagusflyer

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

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

显然问题出在我的mupdf库中。我在不使用proguard的情况下将该库构建为aar文件。这是我的mupdf库的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为false。

然后是我的应用程序的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

如您所见,MuPDFCore已添加到我的proguard文件中。有人可以帮忙说出问题所在吗?太感谢了。

Bagusflyer

通过添加此行

-keep class com.artifex.mupdfdemo.** {*;}

解决了问题。

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

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

mupdf库的Proguard问题

来自分类Dev

Proguard与AAR库问题

来自分类Dev

Android Archieve(.aar)库的ProGuard问题

来自分类Dev

Mupdf离子库

来自分类Dev

MuPDF Android库垂直滚动

来自分类Dev

Apache Legacy的Proguard问题(不使用库时)

来自分类Dev

MuPdf Android JNI库非常大

来自分类Dev

Android Proguard发布问题

来自分类Dev

Instabug Proguard问题

来自分类Dev

Proguard混淆枚举问题

来自分类Dev

ProGuard Java库路径

来自分类Dev

ProGuard阅读库目录

来自分类Dev

iOS #include“ mupdf / fitz.h”找不到问题

来自分类Dev

使用mupdf android库导航到特定页面

来自分类Dev

是否可以在mupdf库中添加页面或替换页面?

来自分类Dev

mupdf:android库:如何反转颜色或更改为夜间模式

来自分类Dev

是否可以在mupdf库中添加页面或替换页面?

来自分类Dev

我如何更改Mupdf库Android中的突出显示颜色

来自分类Dev

Proguard:AmazonAWS和MBean问题

来自分类Dev

Proguard的严重问题-NoClassDefFoundError

来自分类Dev

使用Proguard的Android相机问题

来自分类Dev

Proguard:AmazonAWS和MBean问题

来自分类Dev

ProGuard找不到引用的库

来自分类Dev

Proguard + RenderScript支持库错误

来自分类Dev

Android SDK中Proguard和Consumer Proguard的问题29

来自分类Dev

解析1.3.5 jar的Android ProGuard问题

来自分类Dev

Proguard AWS S3问题

来自分类Dev

Firebase-UI库的Proguard配置

来自分类Dev

Proguard忽略库的配置文件