迁移到Gradle Plugin 3.0.1后,Proguard遗址构建

时间:2018-01-19 01:44:04

标签: android gradle android-gradle proguard android-proguard

我们正在从Android Gradle插件2.3.3迁移到Gradle插件3.0.1。 目前,可以使用插件2.3.3与Proguard或使用插件3.0.1但不使用Proguard来构建项目。应用程序包含两个模块。 Proguard之后有大约一百个警告:

Warning: there were 70 unresolved references to classes or interfaces.
         You may need to add missing library jars or update their versions.
         If your code works fine without the missing classes, you can suppress
         the warnings with '-dontwarn' options.
         (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass)
Warning: there were 10 instances of library classes depending on program classes.
         You must avoid such dependencies, since the program classes will
         be processed, while the library classes will remain unchanged.
         (http://proguard.sourceforge.net/manual/troubleshooting.html#dependency)
Warning: there were 34 unresolved references to program class members.
         Your input classes appear to be inconsistent.
         You may need to recompile the code.
         (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedprogramclassmember)

而忽略它们不是解决方案。在这种情况下,我在应用程序启动时得到了这个:

01-19 00:59:48.252 E/AndroidRuntime: FATAL EXCEPTION: main
                                 Process: com.vyng.messaging.dev, PID: 3241
                                 java.lang.AbstractMethodError: abstract method "boolean android.content.ContentProvider.onCreate()"
                                     at android.content.ContentProvider.attachInfo(ContentProvider.java:1748)
                                     at android.content.ContentProvider.attachInfo(ContentProvider.java:1723)
                                     at android.app.ActivityThread.installProvider(ActivityThread.java:5153)
                                     at android.app.ActivityThread.installContentProviders(ActivityThread.java:4748)
                                     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4688)
                                     at android.app.ActivityThread.-wrap1(ActivityThread.java)
                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
                                     at android.os.Handler.dispatchMessage(Handler.java:102)
                                     at android.os.Looper.loop(Looper.java:148)
                                     at android.app.ActivityThread.main(ActivityThread.java:5417)
                                     at java.lang.reflect.Method.invoke(Native Method)
                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

以下是依赖项列表(gradle -q app:dependencies --configuration developmentDebugRuntimeClasspath):

developmentDebugCompileClasspath - Resolved configuration for     compilation for variant: developmentDebug
+--- javax.annotation:jsr250-api:1.0
+--- io.objectbox:objectbox-android-objectbrowser:1.2.1
|    \--- io.objectbox:objectbox-java:1.2.1
|         +--- io.objectbox:objectbox-java-api:1.2.1
|         +--- org.greenrobot:essentials:3.0.0-RC1
|         +--- com.google.flatbuffers:flatbuffers-java:1.7.2
|         \--- com.google.code.findbugs:jsr305:3.0.2
+--- com.squareup.leakcanary:leakcanary-android:1.5.4
|    \--- com.squareup.leakcanary:leakcanary-analyzer:1.5.4
|         +--- com.squareup.leakcanary:leakcanary-watcher:1.5.4
|         \--- com.squareup.haha:haha:2.0.3
+--- project :vyng-core
|    +--- com.afollestad.material-dialogs:core:0.9.6.0
|    |    +--- com.android.support:support-annotations:27.0.1 -> 27.0.2
|    |    +--- com.android.support:appcompat-v7:27.0.1 -> 27.0.2
|    |    |    +--- com.android.support:support-annotations:27.0.2
|    |    |    +--- com.android.support:support-core-utils:27.0.2
|    |    |    |    +--- com.android.support:support-annotations:27.0.2
|    |    |    |    \--- com.android.support:support-compat:27.0.2
|    |    |    |         +--- com.android.support:support-annotations:27.0.2
|    |    |    |         \--- android.arch.lifecycle:runtime:1.0.3
|    |    |    |              +--- android.arch.lifecycle:common:1.0.3
|    |    |    |              \--- android.arch.core:common:1.0.0
|    |    |    +--- com.android.support:support-fragment:27.0.2
|    |    |    |    +--- com.android.support:support-compat:27.0.2 (*)
|    |    |    |    +--- com.android.support:support-core-ui:27.0.2
|    |    |    |    |    +--- com.android.support:support-annotations:27.0.2
|    |    |    |    |    \--- com.android.support:support-compat:27.0.2 (*)
|    |    |    |    +--- com.android.support:support-core-utils:27.0.2 (*)
|    |    |    |    \--- com.android.support:support-annotations:27.0.2
|    |    |    +--- com.android.support:support-vector-drawable:27.0.2
|    |    |    |    +--- com.android.support:support-annotations:27.0.2
|    |    |    |    \--- com.android.support:support-compat:27.0.2 (*)
|    |    |    \--- com.android.support:animated-vector-drawable:27.0.2
|    |    |         +--- com.android.support:support-vector-drawable:27.0.2 (*)
|    |    |         \--- com.android.support:support-core-ui:27.0.2 (*)
|    |    +--- com.android.support:recyclerview-v7:27.0.1 -> 27.0.2
|    |    |    +--- com.android.support:support-annotations:27.0.2
|    |    |    +--- com.android.support:support-compat:27.0.2 (*)
|    |    |    \--- com.android.support:support-core-ui:27.0.2 (*)
|    |    \--- me.zhanghai.android.materialprogressbar:library:1.4.2
|    |         +--- com.android.support:appcompat-v7:26.0.2 -> 27.0.2 (*)
|    |         \--- com.android.support:support-annotations:26.0.2 -> 27.0.2
|    +--- com.jakewharton:butterknife:8.8.1
|    |    +--- com.jakewharton:butterknife-annotations:8.8.1
|    |    |    \--- com.android.support:support-annotations:25.3.0 -> 27.0.2
|    |    +--- com.android.support:support-annotations:25.3.0 -> 27.0.2
|    |    \--- com.android.support:support-compat:25.3.0 -> 27.0.2 (*)
|    +--- com.android.support:support-annotations:27.0.2
|    +--- com.android.support:customtabs:27.0.2
|    |    +--- com.android.support:support-compat:27.0.2 (*)
|    |    \--- com.android.support:support-annotations:27.0.2
|    +--- com.jakewharton.hugo:hugo-annotations:1.2.1
|    +--- com.jakewharton.hugo:hugo-runtime:1.2.1
|    |    +--- com.jakewharton.hugo:hugo-annotations:1.2.1
|    |    \--- org.aspectj:aspectjrt:1.8.5
|    \--- org.aspectj:aspectjrt:1.8.5
+--- com.beloo.widget:ChipsLayoutManager:0.3.7
+--- com.muddzdev:styleabletoast:1.0.9
|    \--- com.android.support:appcompat-v7:25.3.1 -> 27.0.2 (*)
+--- com.github.jarrodholliday:material-about-library:1.8.4
|    +--- com.android.support:appcompat-v7:25.3.1 -> 27.0.2 (*)
|    +--- com.android.support:cardview-v7:25.3.1 -> 27.0.2
|    |    \--- com.android.support:support-annotations:27.0.2
|    +--- com.android.support:design:25.3.1 -> 27.0.2
|    |    +--- com.android.support:support-v4:27.0.2
|    |    |    +--- com.android.support:support-compat:27.0.2 (*)
|    |    |    +--- com.android.support:support-media-compat:27.0.2
|    |    |    |    +--- com.android.support:support-annotations:27.0.2
|    |    |    |    \--- com.android.support:support-compat:27.0.2 (*)
|    |    |    +--- com.android.support:support-core-utils:27.0.2 (*)
|    |    |    +--- com.android.support:support-core-ui:27.0.2 (*)
|    |    |    \--- com.android.support:support-fragment:27.0.2 (*)
|    |    +--- com.android.support:appcompat-v7:27.0.2 (*)
|    |    +--- com.android.support:recyclerview-v7:27.0.2 (*)
|    |    \--- com.android.support:transition:27.0.2
|    |         +--- com.android.support:support-annotations:27.0.2
|    |         \--- com.android.support:support-compat:27.0.2 (*)
|    \--- com.android.support.constraint:constraint-layout:1.0.2 -> 1.1.0-beta4
|         \--- com.android.support.constraint:constraint-layout-solver:1.1.0-beta4
+--- com.vdurmont:emoji-java:3.2.0
+--- eu.davidea:flexible-adapter:5.0.0-rc2
+--- com.airbnb.android:lottie:2.2.5
|    \--- com.android.support:appcompat-v7:26.1.0 -> 27.0.2 (*)
+--- com.android.support.constraint:constraint-layout:1.1.0-beta4 (*)
+--- io.reactivex.rxjava2:rxjava:2.1.8
|    \--- org.reactivestreams:reactive-streams:1.0.2
+--- io.reactivex.rxjava2:rxandroid:2.0.1
|    \--- io.reactivex.rxjava2:rxjava:2.0.1 -> 2.1.8 (*)
+--- com.tbruyelle.rxpermissions2:rxpermissions:0.9.4
+--- oxim.digital:rx2anim:0.9.1
|    +--- com.android.support:appcompat-v7:25.0.0 -> 27.0.2 (*)
|    \--- com.android.support:support-annotations:25.0.0 -> 27.0.2
+--- com.jakewharton.rxbinding2:rxbinding:2.0.0
|    +--- io.reactivex.rxjava2:rxjava:2.0.2 -> 2.1.8 (*)
|    +--- io.reactivex.rxjava2:rxandroid:2.0.0 -> 2.0.1 (*)
|    \--- com.android.support:support-annotations:25.1.1 -> 27.0.2
+--- com.crashlytics.sdk.android:crashlytics:2.6.8
|    +--- com.crashlytics.sdk.android:beta:1.2.5
|    |    \--- io.fabric.sdk.android:fabric:1.3.17
|    +--- io.fabric.sdk.android:fabric:1.3.17
|    +--- com.crashlytics.sdk.android:crashlytics-core:2.3.17
|    |    +--- io.fabric.sdk.android:fabric:1.3.17
|    |    \--- com.crashlytics.sdk.android:answers:1.3.13
|    |         \--- io.fabric.sdk.android:fabric:1.3.17
|    \--- com.crashlytics.sdk.android:answers:1.3.13 (*)
+--- com.jakewharton.timber:timber:4.6.0
+--- org.slf4j:slf4j-api:1.7.25
+--- com.github.tony19:logback-android-core:1.1.1-6
+--- com.github.tony19:logback-android-classic:1.1.1-6
|    +--- com.github.tony19:logback-android-core:1.1.1-6
|    \--- com.github.tony19:apktool-lib:1.4.4-3
|         \--- com.google.android:android:2.1_r1
|              +--- commons-logging:commons-logging:1.1.1
|              +--- org.apache.httpcomponents:httpclient:4.0.1
|              |    +--- org.apache.httpcomponents:httpcore:4.0.1
|              |    +--- commons-logging:commons-logging:1.1.1
|              |    \--- commons-codec:commons-codec:1.3
|              +--- org.khronos:opengl-api:gl1.1-android-2.1_r1
|              +--- xerces:xmlParserAPIs:2.6.2
|              \--- xpp3:xpp3:1.1.4c
+--- com.google.code.gson:gson:2.8.2
+--- com.googlecode.libphonenumber:libphonenumber:8.8.1
+--- com.facebook.android:facebook-android-sdk:4.29.0
|    +--- com.facebook.android:facebook-core:4.29.0
|    |    +--- com.parse.bolts:bolts-android:1.4.0
|    |    |    +--- com.parse.bolts:bolts-tasks:1.4.0
|    |    |    \--- com.parse.bolts:bolts-applinks:1.4.0
|    |    |         \--- com.parse.bolts:bolts-tasks:1.4.0
|    |    +--- com.android.support:support-annotations:27.0.1 -> 27.0.2
|    |    \--- com.android.support:support-core-utils:27.0.1 -> 27.0.2 (*)
|    +--- com.facebook.android:facebook-common:4.29.0
|    |    +--- com.facebook.android:facebook-core:4.29.0 (*)
|    |    +--- com.android.support:appcompat-v7:27.0.1 -> 27.0.2 (*)
|    |    +--- com.android.support:cardview-v7:27.0.1 -> 27.0.2 (*)
|    |    +--- com.android.support:support-v4:27.0.1 -> 27.0.2 (*)
|    |    \--- com.google.zxing:core:3.3.0
|    +--- com.facebook.android:facebook-login:4.29.0
|    |    +--- com.facebook.android:facebook-core:4.29.0 (*)
|    |    \--- com.facebook.android:facebook-common:4.29.0 (*)
|    +--- com.facebook.android:facebook-share:4.29.0
|    |    +--- com.facebook.android:facebook-core:4.29.0 (*)
|    |    \--- com.facebook.android:facebook-common:4.29.0 (*)
|    +--- com.facebook.android:facebook-places:4.29.0
|    |    \--- com.facebook.android:facebook-core:4.29.0 (*)
|    +--- com.facebook.android:facebook-applinks:4.29.0
|    |    \--- com.facebook.android:facebook-core:4.29.0 (*)
|    \--- com.facebook.android:facebook-messenger:4.29.0
|         \--- com.facebook.android:facebook-core:4.29.0 (*)
+--- com.writingminds:FFmpegAndroid:0.3.2
+--- com.google.guava:guava:23.0-android
|    +--- com.google.code.findbugs:jsr305:1.3.9 -> 3.0.2
|    +--- com.google.errorprone:error_prone_annotations:2.0.18
|    +--- com.google.j2objc:j2objc-annotations:1.1
|    \--- org.codehaus.mojo:animal-sniffer-annotations:1.14
+--- com.github.bumptech.glide:glide:4.5.0
|    +--- com.github.bumptech.glide:gifdecoder:4.5.0
|    |    \--- com.android.support:support-annotations:27.0.2
|    +--- com.github.bumptech.glide:disklrucache:4.5.0
|    +--- com.github.bumptech.glide:annotations:4.5.0
|    \--- com.android.support:support-fragment:27.0.2 (*)
+--- jp.wasabeef:glide-transformations:3.0.1
|    \--- com.github.bumptech.glide:glide:4.0.0 -> 4.5.0 (*)
+--- com.android.support:appcompat-v7:27.0.2 (*)
+--- com.android.support:design:27.0.2 (*)
+--- com.android.support:support-annotations:27.0.2
+--- com.android.support:support-core-utils:27.0.2 (*)
+--- com.android.support:support-v4:27.0.2 (*)
+--- com.android.support:cardview-v7:27.0.2 (*)
+--- com.google.firebase:firebase-core:11.8.0
|    \--- com.google.firebase:firebase-analytics:11.8.0
|         +--- com.google.android.gms:play-services-basement:11.8.0
|         |    +--- com.android.support:support-v4:25.2.0 -> 27.0.2 (*)
|         |    \--- com.google.android.gms:play-services-basement-license:11.8.0
|         +--- com.google.firebase:firebase-common:11.8.0
|         |    +--- com.google.android.gms:play-services-basement:11.8.0 (*)
|         |    +--- com.google.android.gms:play-services-tasks:11.8.0
|         |    |    +--- com.google.android.gms:play-services-basement:11.8.0 (*)
|         |    |    \--- com.google.android.gms:play-services-tasks-license:11.8.0
|         |    \--- com.google.firebase:firebase-common-license:11.8.0
|         +--- com.google.firebase:firebase-analytics-impl:11.8.0
|         |    +--- com.google.android.gms:play-services-basement:11.8.0 (*)
|         |    +--- com.google.firebase:firebase-iid:11.8.0
|         |    |    +--- com.google.android.gms:play-services-basement:11.8.0 (*)
|         |    |    +--- com.google.firebase:firebase-common:11.8.0 (*)
|         |    |    +--- com.google.android.gms:play-services-tasks:11.8.0 (*)
|         |    |    \--- com.google.firebase:firebase-iid-license:11.8.0
|         |    +--- com.google.firebase:firebase-common:11.8.0 (*)
|         |    +--- com.google.android.gms:play-services-tasks:11.8.0 (*)
|         |    \--- com.google.firebase:firebase-analytics-impl-license:11.8.0
|         \--- com.google.firebase:firebase-analytics-license:11.8.0
+--- com.google.firebase:firebase-auth:11.8.0
|    +--- com.google.android.gms:play-services-base:11.8.0
|    |    +--- com.google.android.gms:play-services-basement:11.8.0 (*)
|    |    +--- com.google.android.gms:play-services-tasks:11.8.0 (*)
|    |    \--- com.google.android.gms:play-services-base-license:11.8.0
|    +--- com.google.android.gms:play-services-basement:11.8.0 (*)
|    +--- com.google.firebase:firebase-common:11.8.0 (*)
|    +--- com.google.android.gms:play-services-tasks:11.8.0 (*)
|    \--- com.google.firebase:firebase-auth-license:11.8.0
+--- com.google.firebase:firebase-messaging:11.8.0
|    +--- com.google.firebase:firebase-iid:11.8.0 (*)
|    +--- com.google.android.gms:play-services-basement:11.8.0 (*)
|    +--- com.google.firebase:firebase-common:11.8.0 (*)
|    \--- com.google.firebase:firebase-messaging-license:11.8.0
+--- com.google.firebase:firebase-invites:11.8.0
|    +--- com.google.android.gms:play-services-appinvite:11.8.0
|    |    +--- com.google.android.gms:play-services-base:11.8.0 (*)
|    |    +--- com.google.android.gms:play-services-basement:11.8.0 (*)
|    |    +--- com.google.firebase:firebase-dynamic-links:11.8.0
|    |    |    +--- com.google.android.gms:play-services-base:11.8.0 (*)
|    |    |    +--- com.google.android.gms:play-services-basement:11.8.0 (*)
|    |    |    +--- com.google.firebase:firebase-common:11.8.0 (*)
|    |    |    +--- com.google.android.gms:play-services-tasks:11.8.0 (*)
|    |    |    \--- com.google.firebase:firebase-dynamic-links-license:11.8.0
|    |    +--- com.google.android.gms:play-services-tasks:11.8.0 (*)
|    |    \--- com.google.android.gms:play-services-appinvite-license:11.8.0
|    \--- com.google.firebase:firebase-analytics:11.8.0 (*)
+--- com.google.android.gms:play-services-auth:11.8.0
|    +--- com.google.android.gms:play-services-auth-api-phone:11.8.0
|    |    +--- com.google.android.gms:play-services-base:11.8.0 (*)
|    |    +--- com.google.android.gms:play-services-basement:11.8.0 (*)
|    |    +--- com.google.android.gms:play-services-tasks:11.8.0 (*)
|    |    \--- com.google.android.gms:play-services-auth-api-phone-license:11.8.0
|    +--- com.google.android.gms:play-services-auth-base:11.8.0
|    |    +--- com.google.android.gms:play-services-base:11.8.0 (*)
|    |    +--- com.google.android.gms:play-services-basement:11.8.0 (*)
|    |    +--- com.google.android.gms:play-services-tasks:11.8.0 (*)
|    |    \--- com.google.android.gms:play-services-auth-base-license:11.8.0
|    +--- com.google.android.gms:play-services-base:11.8.0 (*)
|    +--- com.google.android.gms:play-services-basement:11.8.0 (*)
|    \--- com.google.android.gms:play-services-tasks:11.8.0 (*)
+--- com.google.android.gms:play-services-auth-api-phone:11.8.0 (*)
+--- com.bluelinelabs:conductor:2.1.4
|    \--- com.android.support:support-annotations:25.3.1 -> 27.0.2
+--- com.google.dagger:dagger:2.14.1
|    \--- javax.inject:javax.inject:1
+--- com.facebook.android:account-kit-sdk:4.29.0
|    +--- com.android.support:appcompat-v7:25.3.1 -> 27.0.2 (*)
|    +--- com.android.support:design:25.3.1 -> 27.0.2 (*)
|    +--- com.android.support:support-v4:25.3.1 -> 27.0.2 (*)
|    +--- com.google.android.gms:play-services-auth-api-phone:11.6.0 -> 11.8.0 (*)
|    +--- com.google.android.gms:play-services-auth:11.6.0 -> 11.8.0 (*)
|    \--- com.googlecode.libphonenumber:libphonenumber:8.5.2 -> 8.8.1
+--- com.google.android.exoplayer:exoplayer-ui:2.6.1
|    +--- com.google.android.exoplayer:exoplayer-core:2.6.1
|    |    \--- com.android.support:support-annotations:27.0.0 -> 27.0.2
|    \--- com.android.support:support-annotations:27.0.0 -> 27.0.2
+--- com.google.android.exoplayer:exoplayer-core:2.6.1 (*)
+--- com.google.android.exoplayer:exoplayer-dash:2.6.1
|    +--- com.google.android.exoplayer:exoplayer-core:2.6.1 (*)
|    \--- com.android.support:support-annotations:27.0.0 -> 27.0.2
+--- com.yqritc:android-scalablevideoview:1.0.4
+--- com.github.jarrodholliday:videocache:2.7.1
+--- com.squareup.retrofit2:retrofit:2.3.0
|    \--- com.squareup.okhttp3:okhttp:3.8.0 -> 3.9.1
|         \--- com.squareup.okio:okio:1.13.0
+--- com.squareup.retrofit2:converter-gson:2.3.0
|    +--- com.squareup.retrofit2:retrofit:2.3.0 (*)
|    \--- com.google.code.gson:gson:2.7 -> 2.8.2
+--- com.squareup.retrofit2:adapter-rxjava2:2.3.0
|    +--- com.squareup.retrofit2:retrofit:2.3.0 (*)
|    \--- io.reactivex.rxjava2:rxjava:2.0.0 -> 2.1.8 (*)
+--- com.squareup.okhttp3:logging-interceptor:3.9.1
|    \--- com.squareup.okhttp3:okhttp:3.9.1 (*)
\--- com.squareup.okhttp3:okhttp:3.9.1 (*)

应用程序模块的Proguard规则:

# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature

# For using GSON @Expose annotation
-keepattributes *Annotation*

-keepattributes EnclosingMethod

# Retrofit 2.X
## https://square.github.io/retrofit/ ##
-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions

-keepclasseswithmembers class * {
    @retrofit2.http.* <methods>;
}

# OkHttp
-keepattributes Signature
-keepattributes *Annotation*
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }
-dontwarn okhttp3.**
-dontwarn okio.**

# Gson specific classes
-keep class sun.misc.Unsafe { *; }
-keep class com.google.gson.stream.** { *; }
#your package path where your gson models are stored
-keep class com.vyng.android.model.** { *; }
-keep class com.vyng.android.device.model.** { *; }
-keep class com.vyng.android.home.channel.model.** { *; }

# glide
-dontwarn com.sun.tools.javac.code.**
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
  **[] $VALUES;
  public *;
}

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

# rx2anim
-dontwarn oxim.digital.rx2anim.**

# Logback for Android
#
# Tested on the following *.gradle dependencies
#
#    compile 'org.slf4j:slf4j-api:1.7.25'
#    compile 'com.github.tony19:logback-android-core:1.1.1-6'
#    compile 'com.github.tony19:logback-android-classic:1.1.1-6'
#
-keep class ch.qos.** { *; }
-keep class org.slf4j.** { *; }
-keepattributes *Annotation*
-dontwarn ch.qos.logback.core.net.*

## Retrolambda specific rules ##
# as per official recommendation: https://github.com/evant/gradle-retrolambda#proguard
-dontwarn java.lang.invoke.*

# For Crashlytics
-keepattributes SourceFile,LineNumberTable

# Firebase DynamicLink
-keep interface com.google.android.gms.tasks.** { *; }

# Lambdas
-dontwarn java.lang.invoke.*
-dontwarn **$$Lambda$*

# Other extras to get it to build!
-dontwarn java.nio.**
-dontwarn javax.annotation.**
-dontwarn javax.lang.**
-dontwarn javax.tools.**
-dontwarn com.squareup.javapoet.**
-dontwarn java.lang.ClassValue
-dontwarn com.google.j2objc.annotations.Weak
-dontwarn com.google.auto.service.processor.AutoServiceProcessor
-dontwarn com.google.common.util.concurrent.**

#smsmms library
-dontwarn android.net.LinkProperties

#MaterialChips library
-dontwarn com.beloo.widget.chipslayoutmanager.Orientation

-dontwarn com.squareup.okhttp.**

-keep class io.objectbox.relation.** { *; }

-dontwarn android.**

图书馆模块的Proguard规则:

# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in C:\Users\grandmoto\AppData\Local\Android\sdk/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# Add any project specific keep options here:

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature

# For using GSON @Expose annotation
-keepattributes *Annotation*

-keepattributes EnclosingMethod

## Retrolambda specific rules ##
# as per official recommendation: https://github.com/evant/gradle-retrolambda#proguard
-dontwarn java.lang.invoke.*

# support design
-dontwarn android.support.design.**
-keep class android.support.design.** { *; }
-keep interface android.support.design.** { *; }
-keep public class android.support.design.R$* { *; }

# Logback for Android
#
# Tested on the following *.gradle dependencies
#
#    compile 'org.slf4j:slf4j-api:1.7.25'
#    compile 'com.github.tony19:logback-android-core:1.1.1-6'
#    compile 'com.github.tony19:logback-android-classic:1.1.1-6'
#
-keep class ch.qos.** { *; }
-keep class org.slf4j.** { *; }
-keepattributes *Annotation*
-dontwarn ch.qos.logback.core.net.*

# For Crashlytics
-keepattributes SourceFile,LineNumberTable

# Lambdas
-dontwarn java.lang.invoke.*
-dontwarn **$$Lambda$*

-dontwarn android.**

Application and library module dependencies and Proguard rules

0 个答案:

没有答案