Security Issues with Gradle 3.0.0

I am trying to create an APK using ProGuard and the new version of Gradle 3.0.0. I get a lot of warnings about classes that I thought I ignored in my ProGuard configuration file. The same configuration works well with Gradle 2.3.3, but seems to break at 3.0.0. There are so many warnings that he barely reads the ProGuard configuration.

My build.gradle

buildscript { repositories { mavenCentral() jcenter() google() } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' classpath 'com.google.gms:google-services:3.0.0' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2' } } allprojects { repositories { jcenter() maven { url 'https://jitpack.io' } maven { url 'https://maven.google.com' } } } android{ buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release lintOptions { disable 'MissingTranslation' } } compileSdkVersion 27 buildToolsVersion "27.0.1" defaultConfig { minSdkVersion 16 targetSdkVersion 27 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true } 

Proguard warning below.

  Warning: library class android.animation.FloatArrayEvaluator extends or implements program class android.animation.TypeEvaluator Warning: library class android.animation.IntArrayEvaluator extends or implements program class android.animation.TypeEvaluator Warning: library class android.animation.PointFEvaluator extends or implements program class android.animation.TypeEvaluator Warning: library class android.animation.RectEvaluator extends or implements program class android.animation.TypeEvaluator Warning: library class android.app.ActivityManager$TaskDescription extends or implements program class android.os.Parcelable Warning: library class android.app.AlarmManager$AlarmClockInfo extends or implements program class android.os.Parcelable Warning: library class android.app.AuthenticationRequiredException extends or implements program class android.os.Parcelable Warning: library class android.app.AutomaticZenRule extends or implements program class android.os.Parcelable Warning: library class android.app.Notification$Action extends or implements program class android.os.Parcelable Warning: library class android.app.Notification$DecoratedCustomViewStyle extends or implements program class android.app.Notification$Style Warning: library class android.app.Notification$MediaStyle extends or implements program class android.app.Notification$Style Warning: library class android.app.Notification$MessagingStyle extends or implements program class android.app.Notification$Style Warning: library class android.app.NotificationChannel extends or implements program class android.os.Parcelable Warning: library class android.app.NotificationChannelGroup extends or implements program class android.os.Parcelable Warning: library class android.app.NotificationManager$Policy extends or implements program class android.os.Parcelable Warning: library class android.app.PictureInPictureParams extends or implements program class android.os.Parcelable Warning: library class android.app.Presentation extends or implements program class android.app.Dialog Warning: library class android.app.RemoteAction extends or implements program class android.os.Parcelable Warning: library class android.app.RemoteInput extends or implements program class android.os.Parcelable Warning: library class android.app.VoiceInteractor$PickOptionRequest$Option extends or implements program class android.os.Parcelable Warning: library class android.app.VoiceInteractor$Prompt extends or implements program class android.os.Parcelable Warning: library class android.app.WallpaperColors extends or implements program class android.os.Parcelable Warning: library class android.app.admin.ConnectEvent extends or implements program class android.os.Parcelable Warning: library class android.app.admin.DeviceAdminService extends or implements program class android.app.Service Warning: library class android.app.admin.DnsEvent extends or implements program class android.os.Parcelable Warning: library class android.app.admin.NetworkEvent extends or implements program class android.os.Parcelable Warning: library class android.app.admin.SecurityLog$SecurityEvent extends or implements program class android.os.Parcelable Warning: library class android.app.admin.SystemUpdateInfo extends or implements program class android.os.Parcelable Warning: library class android.app.admin.SystemUpdatePolicy extends or implements program class android.os.Parcelable Warning: library class android.app.assist.AssistContent extends or implements program class android.os.Parcelable Warning: library class android.app.assist.AssistStructure extends or implements program class android.os.Parcelable Warning: library class android.app.job.JobInfo extends or implements program class android.os.Parcelable Warning: library class android.util.FloatProperty extends or implements program class android.util.Property Warning: library class android.util.IntProperty extends or implements program class android.util.Property Warning: library class android.view.ActionMode$Callback2 extends or implements program class android.view.ActionMode$Callback Warning: library class android.view.Display$HdrCapabilities extends or implements program class android.os.Parcelable Warning: library class android.view.Display$Mode extends or implements program class android.os.Parcelable Warning: library class android.view.DragAndDropPermissions extends or implements program class android.os.Parcelable Warning: library class android.view.KeyboardShortcutGroup extends or implements program class android.os.Parcelable Warning: library class android.view.KeyboardShortcutInfo extends or implements program class android.os.Parcelable Warning: library class android.view.PointerIcon extends or implements program class android.os.Parcelable Warning: library class android.view.WindowAnimationFrameStats extends or implements program class android.os.Parcelable Warning: library class android.view.WindowContentFrameStats extends or implements program class android.os.Parcelable Warning: library class android.view.WindowId extends or implements program class android.os.Parcelable Warning: library class android.view.accessibility.AccessibilityWindowInfo extends or implements program class android.os.Parcelable Warning: library class android.view.animation.BaseInterpolator extends or implements program class android.view.animation.Interpolator Warning: library class android.view.autofill.AutofillId extends or implements program class android.os.Parcelable Warning: library class android.view.autofill.AutofillValue extends or implements program class android.os.Parcelable Warning: library class android.view.inputmethod.CursorAnchorInfo extends or implements program class android.os.Parcelable Warning: library class android.view.inputmethod.InputContentInfo extends or implements program class android.os.Parcelable Warning: library class android.widget.ActionMenuView extends or implements program class android.widget.LinearLayout Warning: library class android.widget.ActionMenuView$LayoutParams extends or implements program class android.widget.LinearLayout$LayoutParams Warning: library class android.app.RemoteInput depends on program class android.content.Intent Warning: library class android.app.RemoteInput depends on program class android.os.Bundle Warning: library class android.app.RemoteInput depends on program class android.content.Intent Warning: library class android.app.RemoteInput depends on program class android.os.Parcel Warning: library class android.app.RemoteInput$Builder depends on program class android.os.Bundle Warning: library class android.app.RemoteInput$Builder depends on program class android.os.Bundle Warning: library class android.app.SharedElementCallback depends on program class android.view.View Warning: library class android.app.SharedElementCallback depends on program class android.graphics.Matrix Warning: library class android.app.SharedElementCallback depends on program class android.graphics.RectF Warning: library class android.app.SharedElementCallback depends on program class android.os.Parcelable Warning: library class android.app.SharedElementCallback depends on program class android.content.Context Warning: library class android.media.session.MediaController$TransportControls depends on program class android.net.Uri Warning: library class android.media.session.MediaController$TransportControls depends on program class android.os.Bundle Warning: library class android.media.session.MediaController$TransportControls depends on program class android.os.Bundle Warning: library class android.media.session.MediaController$TransportControls depends on program class android.os.Bundle Warning: library class android.media.session.MediaSession depends on program class android.content.Context Warning: library class android.media.session.MediaSession depends on program class android.os.Handler Warning: library class android.media.session.MediaSession depends on program class android.app.PendingIntent Warning: library class android.media.session.MediaSession depends on program class android.app.PendingIntent Warning: library class android.media.session.MediaSession depends on program class android.os.Bundle Warning: library class android.media.session.MediaSession depends on program class android.os.Bundle Warning: library class android.media.session.MediaSession$Callback depends on program class android.os.Bundle Warning: library class android.media.session.MediaSession$Callback depends on program class android.os.ResultReceiver Warning: library class android.media.session.MediaSession$Callback depends on program class android.content.Intent Warning: library class android.media.session.MediaSession$Callback depends on program class android.os.Bundle Warning: library class android.media.session.MediaSession$Callback depends on program class android.os.Bundle Warning: library class android.media.session.MediaSession$Callback depends on program class android.net.Uri Warning: library class android.media.session.MediaSession$Callback depends on program class android.os.Bundle Warning: library class android.media.session.MediaSession$Callback depends on program class android.os.Bundle Warning: library class android.media.session.MediaSession$Callback depends on program class android.os.Bundle Warning: library class android.media.session.MediaSession$Callback depends on program class android.net.Uri Warning: library class android.media.session.MediaSession$Callback depends on program class android.os.Bundle Warning: library class android.media.session.MediaSession$Callback depends on program class android.os.Bundle Warning: library class android.media.session.MediaSession$QueueItem depends on program class android.os.Parcelable$Creator Warning: library class android.media.session.MediaSession$QueueItem depends on program class android.os.Parcel Warning: library class android.media.session.MediaSession$Token depends on program class android.os.Parcelable$Creator Warning: library class android.media.session.MediaSession$Token depends on program class android.os.Parcel Warning: library class android.media.session.PlaybackState depends on program class android.os.Parcelable$Creator Warning: library class android.media.session.PlaybackState depends on program class android.os.Parcel Warning: library class android.media.session.PlaybackState depends on program class android.os.Bundle Warning: library class android.media.session.PlaybackState$Builder depends on program class android.os.Bundle Warning: library class android.media.session.PlaybackState$CustomAction depends on program class android.os.Parcelable$Creator Warning: library class android.media.session.PlaybackState$CustomAction depends on program class android.os.Parcel Warning: library class android.media.session.PlaybackState$CustomAction depends on program class android.os.Bundle Warning: library class android.media.session.PlaybackState$CustomAction$Builder depends on program class android.os.Bundle Warning: library class android.net.Network depends on program class android.os.Parcelable$Creator Warning: library class android.net.Network depends on program class android.os.Parcel Warning: library class android.os.LocaleList depends on program class android.os.Parcelable$Creator Warning: library class android.os.LocaleList depends on program class android.os.Parcel Warning: library class android.os.PersistableBundle depends on program class android.os.Parcelable$Creator Warning: library class android.os.PersistableBundle depends on program class android.os.Parcel Warning: library class android.os.UserManager depends on program class android.os.Bundle Warning: library class android.os.UserManager depends on program class android.os.Bundle Warning: library class android.provider.DocumentsContract depends on program class android.net.Uri Warning: library class android.provider.DocumentsContract depends on program class android.net.Uri Warning: library class android.provider.DocumentsContract depends on program class android.net.Uri Warning: library class android.provider.DocumentsContract depends on program class android.content.Context Warning: library class android.provider.DocumentsContract depends on program class android.net.Uri Warning: library class android.provider.DocumentsContract depends on program class android.net.Uri Warning: library class android.provider.DocumentsContract depends on program class android.net.Uri Warning: library class android.provider.DocumentsContract depends on program class android.net.Uri Warning: library class android.provider.DocumentsContract depends on program class android.net.Uri Warning: library class android.provider.DocumentsContract depends on program class android.net.Uri Warning: library class android.provider.DocumentsContract depends on program class android.content.ContentResolver Warning: library class android.provider.DocumentsContract depends on program class android.net.Uri Warning: library class android.provider.DocumentsContract depends on program class android.graphics.Point Warning: library class android.provider.DocumentsContract depends on program class android.os.CancellationSignal Warning: library class android.provider.DocumentsContract depends on program class android.graphics.Bitmap Warning: library class android.provider.DocumentsContract depends on program class android.content.ContentResolver Warning: library class android.provider.DocumentsContract depends on program class android.net.Uri Warning: library class android.provider.DocumentsContract depends on program class android.net.Uri Warning: library class android.provider.DocumentsContract depends on program class android.content.ContentResolver Warning: library class android.provider.DocumentsContract depends on program class android.net.Uri Warning: library class android.provider.DocumentsContract depends on program class android.net.Uri Warning: library class android.provider.DocumentsContract depends on program class android.content.ContentResolver Warning: library class android.provider.DocumentsContract depends on program class android.net.Uri Warning: library class android.provider.DocumentsContract depends on program class android.content.ContentResolver Warning: library class android.security.KeyPairGeneratorSpec depends on program class android.content.Context Warning: library class android.security.KeyPairGeneratorSpec$Builder depends on program class android.content.Context Warning: library class android.service.media.MediaBrowserService depends on program class android.content.Intent Warning: library class android.service.media.MediaBrowserService depends on program class android.os.IBinder Warning: library class android.service.media.MediaBrowserService depends on program class android.os.Bundle Warning: library class android.service.media.MediaBrowserService depends on program class android.os.Bundle Warning: library class android.service.media.MediaBrowserService depends on program class android.os.Bundle Warning: library class android.service.media.MediaBrowserService depends on program class android.os.Bundle Warning: library class android.service.media.MediaBrowserService$BrowserRoot depends on program class android.os.Bundle Warning: library class android.service.media.MediaBrowserService$BrowserRoot depends on program class android.os.Bundle Warning: library class android.widget.Toolbar depends on program class android.util.AttributeSet Warning: library class android.widget.Toolbar depends on program class android.graphics.drawable.Drawable Warning: library class android.widget.Toolbar depends on program class android.graphics.drawable.Drawable Warning: library class android.widget.Toolbar depends on program class android.content.Context Warning: library class android.widget.Toolbar depends on program class android.content.Context Warning: library class android.widget.Toolbar depends on program class android.graphics.drawable.Drawable Warning: library class android.widget.Toolbar depends on program class android.graphics.drawable.Drawable Warning: library class android.widget.Toolbar depends on program class android.view.View$OnClickListener Warning: library class android.widget.Toolbar depends on program class android.view.Menu Warning: library class android.widget.Toolbar depends on program class android.graphics.drawable.Drawable Warning: library class android.widget.Toolbar depends on program class android.graphics.drawable.Drawable Warning: library class android.widget.Toolbar depends on program class android.os.Parcelable Warning: library class android.widget.Toolbar depends on program class android.os.Parcelable Warning: library class android.widget.Toolbar depends on program class android.view.MotionEvent Warning: library class android.widget.Toolbar depends on program class android.util.AttributeSet Warning: library class android.widget.Toolbar depends on program class android.view.ViewGroup$LayoutParams Warning: library class android.widget.Toolbar depends on program class android.view.ViewGroup$LayoutParams Warning: library class android.widget.Toolbar depends on program class android.view.ViewGroup$LayoutParams Warning: library class android.widget.Toolbar depends on program class android.view.ViewGroup$LayoutParams Warning: library class android.widget.Toolbar depends on program class android.view.ViewGroup$LayoutParams Warning: library class android.widget.Toolbar depends on program class android.util.AttributeSet Warning: library class android.widget.Toolbar depends on program class android.view.ViewGroup$LayoutParams Note: there were 15 references to unknown classes. You should check your configuration for typos. (http://proguard.sourceforge.net/manual/troubleshooting.html#unknownclass) Note: there were 21 unresolved dynamic references to classes or interfaces. You should check if you need to specify additional program jars. (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass) Warning: there were 928 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 53 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) Warning: Exception while processing task java.io.IOException: Please correct the above warnings first. :transformClassesAndResourcesWithProguardForCouchdbRelease FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':transformClassesAndResourcesWithProguardForCouchdbRelease'. > Job failed, see logs for details 
+8
android android-gradle gradle proguard android-proguard
source share
4 answers

I upgraded to gradle 3.0.1 and most of the warnings disappeared. If you're still at 3.0.0 then use this in your proguard file

 -dontwarn android.** 

Not perfect, but it works.

+1
source share

This may help you. Enabling ProGuard for local library modules no longer affects the library code. Instead, you should run ProGuard on the app module that consumes the library. Enabling ProGuard for local library modules no longer affects the library code. Instead, you should run ProGuard on the app module that consumes the library. https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html

0
source share

I had the same problem, although my case was unique, here is my solution:

After upgrading to version 3.0.1 ( com.android.tools.build:gradle:3.0.1 ) I saw fewer warnings (initially I had> 3000 warnings). The source of my problem was that I used a library that depended on the entire Android infrastructure (this: https://github.com/tony19/logback-android , issue # 73 ).

I also studied dependencies ( ./gradlew app:dependenices ) because I had libraries that depend on the old apache http client, which also raises some warnings. I also had to eliminate them.

0
source share

Add below code to android tag

 lintOptions { // set to true to turn off analysis progress reporting by lint quiet true // if true, stop the gradle build if errors are found abortOnError false // if true, only report errors ignoreWarnings true } 
-3
source share

All Articles