库类(来自Android sdk)取决于程序类(同样,Android sdk) [英] Library class (from Android sdk) depends on program class (again, Android sdk)

查看:106
本文介绍了库类(来自Android sdk)取决于程序类(同样,Android sdk)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们正在从Android Gradle插件2.3.3迁移到Gradle插件3.0.1.我们的应用程序包含一个应用程序模块和一个库模块.有几个依赖项是可传递的(使用api关键字连接),但是即使使用implementation使它们不具有传递性也无济于事.将所有compile类型的依赖关系更改为新的依赖关系后,调试版本将运行良好.但是,使用Proguard发行版本会显示成千上万的警告(在2.3.3上一切正常)

We are migrating from Android Gradle plugin 2.3.3 to Gradle plugin 3.0.1. Our application consists of an Application module and a Library module. Several dependencies are transitive (connected using api keyword) but even making them non-transitive using implementation doesn't help. After changing all the compile-type dependencies to the new ones, debug build works well. However, release build with Proguard shows thousands of warnings (on 2.3.3 everything goes well)

特别是,当库中的Android类依赖于程序中的Android类时,我不明白为什么会有这样的问题(这里仅是几个示例):

In particular, I don't get why do we have such problems, when Android classes from library depend on Android classes from program (here are just few examples):

Warning: library class android.app.ActionBar$LayoutParams extends or implements program class android.view.ViewGroup$MarginLayoutParams
Warning: library class android.app.ActivityManager$TaskDescription extends or implements program class android.os.Parcelable
Warning: library class android.widget.Toolbar depends on program class android.view.ViewGroup$LayoutParams

总体而言,在Gradle插件2.3.3中没有出现以下几种警告(因此,已经配置了Proguard):

Overall, there are next types of warnings that do not appear on Gradle plugin 2.3.3 (so, Proguard is already configured):

Warning: there were 72 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 1373 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 1056 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)
FAILURE: Build failed with an exception.

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

Here is the list of dependencies (gradle -q app:dependencies --configuration developmentDebugRuntimeClasspath ):

Configuration 'androidTestCompile' in project ':app' is deprecated. Use 'androidTestImplementation' instead.
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
Configuration 'debugCompile' in project ':vyng-core' is deprecated. Use 'debugImplementation' instead.
Configuration 'compile' in project ':vyng-core' is deprecated. Use 'implementation' instead.

------------------------------------------------------------
Project :app
------------------------------------------------------------

developmentDebugRuntimeClasspath - Resolved configuration for runtime for variant: developmentDebug
+--- io.objectbox:objectbox-android-objectbrowser:1.3.4
|    \--- io.objectbox:objectbox-java:1.3.4
|         +--- io.objectbox:objectbox-java-api:1.3.4
|         +--- 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.airbnb.android:lottie:2.2.5
|    |    \--- com.android.support:appcompat-v7:26.1.0 -> 27.0.2 (*)
|    +--- com.muddzdev:styleabletoast:1.0.9
|    |    \--- com.android.support:appcompat-v7:25.3.1 -> 27.0.2 (*)
|    +--- com.facebook.rebound:rebound:0.3.8
|    +--- jp.wasabeef:glide-transformations:3.0.1
|    |    \--- com.github.bumptech.glide:glide:4.0.0
|    |         +--- com.github.bumptech.glide:gifdecoder:4.0.0
|    |         |    \--- com.android.support:support-annotations:25.3.1 -> 27.0.2
|    |         +--- com.github.bumptech.glide:disklrucache:4.0.0
|    |         \--- com.github.bumptech.glide:annotations:4.0.0
|    +--- com.googlecode.libphonenumber:libphonenumber:8.8.1
|    +--- com.bluelinelabs:conductor:2.1.3 -> 2.1.4
|    |    \--- com.android.support:support-annotations:25.3.1 -> 27.0.2
|    +--- io.reactivex.rxjava2:rxjava:2.1.6
|    |    \--- org.reactivestreams:reactive-streams:1.0.1
|    +--- io.reactivex.rxjava2:rxandroid:2.0.1
|    |    \--- io.reactivex.rxjava2:rxjava:2.0.1 -> 2.1.6 (*)
|    +--- com.tbruyelle.rxpermissions2:rxpermissions:0.9.4
|    +--- 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.dagger:dagger:2.11
|    |    \--- javax.inject:javax.inject:1
|    +--- com.google.android.exoplayer:exoplayer-core:r2.4.4 -> r2.5.1
|    |    \--- com.android.support:support-annotations:25.4.0 -> 27.0.2
|    +--- com.google.android.exoplayer:exoplayer-dash:r2.4.4 -> r2.5.1
|    |    +--- com.google.android.exoplayer:exoplayer-core:r2.5.1 (*)
|    |    +--- com.android.support:support-annotations:25.4.0 -> 27.0.2
|    |    \--- com.android.support:support-core-utils:25.4.0 -> 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.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.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-config: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-iid: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-config-license:11.8.0
|    +--- com.squareup.retrofit2:retrofit:2.3.0
|    |    \--- com.squareup.okhttp3:okhttp:3.8.0 -> 3.8.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.6 (*)
|    +--- com.squareup.okhttp3:logging-interceptor:3.8.1
|    |    \--- com.squareup.okhttp3:okhttp:3.8.1 (*)
|    \--- com.squareup.okhttp3:okhttp:3.8.1 (*)
+--- com.beloo.widget:ChipsLayoutManager:0.3.7
+--- com.muddzdev:styleabletoast:1.0.9 (*)
+--- 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
|    |    \--- com.android.support:support-annotations:25.3.1 -> 27.0.2
|    +--- com.android.support:design:25.3.1 -> 27.0.2
|    |    +--- com.android.support:support-v4: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.constraint:constraint-layout:1.1.0-beta4 (*)
+--- io.reactivex.rxjava2:rxjava:2.1.6 (*)
+--- io.reactivex.rxjava2:rxandroid:2.0.1 (*)
+--- 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.6 (*)
|    +--- 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.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.google.code.gson:gson:2.8.2
+--- com.googlecode.libphonenumber:libphonenumber:8.8.1
+--- com.facebook.android:facebook-android-sdk:4.24.0
|    +--- com.android.support:support-v4:25.3.1 -> 27.0.2 (*)
|    +--- com.android.support:appcompat-v7:25.3.1 -> 27.0.2 (*)
|    +--- com.android.support:cardview-v7:25.3.1 (*)
|    \--- 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.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.0.0 (*)
+--- jp.wasabeef:glide-transformations:3.0.1 (*)
+--- com.android.support:appcompat-v7:27.0.2 (*)
+--- com.android.support:design:27.0.2 (*)
+--- com.android.support:support-annotations:27.0.2
+--- com.google.firebase:firebase-core: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.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.bluelinelabs:conductor:2.1.4 (*)
+--- com.google.dagger:dagger:2.11 (*)
+--- com.facebook.android:account-kit-sdk:4.24.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.exoplayer:exoplayer-ui:r2.5.1
|    +--- com.google.android.exoplayer:exoplayer-core:r2.5.1 (*)
|    \--- com.android.support:support-annotations:25.4.0 -> 27.0.2
+--- com.google.android.exoplayer:exoplayer-core:r2.5.1 (*)
+--- com.google.android.exoplayer:exoplayer-dash:r2.5.1 (*)
+--- com.yqritc:android-scalablevideoview:1.0.4
+--- com.github.jarrodholliday:videocache:2.7.1
+--- com.squareup.retrofit2:retrofit:2.3.0 (*)
+--- com.squareup.retrofit2:converter-gson:2.3.0 (*)
+--- com.squareup.retrofit2:adapter-rxjava2:2.3.0 (*)
+--- com.squareup.okhttp3:logging-interceptor:3.8.1 (*)
\--- com.squareup.okhttp3:okhttp:3.8.1 (*)

(*) - dependencies omitted (listed previously)

推荐答案

快速修复: 升级到Gradle插件3.0.0时遇到了这个问题,一种快速的解决方案是将其添加到您的proguard文件中,

Quick Fix: I had this problem when upgrading to Gradle plugin 3.0.0, a quick solution is to add this in your proguard file,

-dontwarn android.**

这也应与3.0.1一起使用.

This should work with 3.0.1 as well.

推荐: 当您使用的库不引用支持库中的android类或引用不推荐使用的类时,就会发生这种情况.我的猜测是,

Recommended: This occurs when you are using a library which is not referencing android class from support library or is referencing deprecated classes. My guess is,

com.github.tony19:logback-android-core

您正在使用的

导致此问题,您可以删除此依赖项并尝试重新构建.如果这样做没有帮助,您可以尝试删除所有正在使用的其他库,但这些库最近未更新.

which you are using is causing this, you can remove this dependency and try rebuilding. If this doesn't help you can try removing any other libraries that you are using but they aren't updated recently.

这篇关于库类(来自Android sdk)取决于程序类(同样,Android sdk)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆