Depuis que j'ai mis à jour Android studio de la version 3.4 à la version 3.5, j'obtiens l'erreur sur le projet. La liste des erreurs est ci-dessous et il semble qu'il manque des règles dans le fichier proguard.
Mais une fois que j'ai mis ces règles :
-dontnote androidx.**
-dontwarn androidx.**
Le projet se construit à l'infini et ne se termine pas. J'ai attendu 30-40 minutes sans aucun résultat. (Habituellement, le temps de construction du projet est de 4 à 5 minutes).
Note: there were 6 duplicate class definitions.
(http://proguard.sourceforge.net/manual/troubleshooting.html#duplicateclass)
Note: the configuration refers to the unknown class 'com.amazonaws.auth.AWS4Signer'
Warning: androidx.appcompat.widget.ActivityChooserView: can't find referenced method 'void saveAttributeDataForStyleable(android.content.Context,int[],android.util.AttributeSet,android.content.res.TypedArray,int,int)' in program class androidx.appcompat.widget.ActivityChooserView
Warning: androidx.appcompat.widget.AppCompatTextViewAutoSizeHelper: can't find referenced method 'boolean isHorizontallyScrollable()' in library class android.widget.TextView
Warning: androidx.appcompat.widget.AppCompatTextViewAutoSizeHelper: can't find referenced method 'android.text.TextDirectionHeuristic getTextDirectionHeuristic()' in library class android.widget.TextView
Warning: androidx.appcompat.widget.ButtonBarLayout: can't find referenced method 'void saveAttributeDataForStyleable(android.content.Context,int[],android.util.AttributeSet,android.content.res.TypedArray,int,int)' in program class androidx.appcompat.widget.ButtonBarLayout
Warning: androidx.appcompat.widget.DrawableUtils: can't find referenced method 'android.graphics.Insets getOpticalInsets()' in library class android.graphics.drawable.Drawable
Warning: androidx.appcompat.widget.DrawableUtils: can't find referenced class android.graphics.Insets
Warning: androidx.appcompat.widget.DrawableUtils: can't find referenced class android.graphics.Insets
Warning: androidx.appcompat.widget.DrawableUtils: can't find referenced class android.graphics.Insets
Warning: androidx.appcompat.widget.DrawableUtils: can't find referenced class android.graphics.Insets
Warning: androidx.appcompat.widget.DrawableUtils: can't find referenced class android.graphics.Insets
Warning: androidx.appcompat.widget.DrawableUtils: can't find referenced class android.graphics.Insets
Warning: androidx.appcompat.widget.ListPopupWindow: can't find referenced method 'void setEpicenterBounds(android.graphics.Rect)' in library class android.widget.PopupWindow
Warning: androidx.appcompat.widget.ListPopupWindow: can't find referenced method 'void setIsClippedToScreen(boolean)' in library class android.widget.PopupWindow
Warning: androidx.appcompat.widget.MenuPopupWindow: can't find referenced method 'void setTouchModal(boolean)' in library class android.widget.PopupWindow
Warning: androidx.appcompat.widget.SearchView: can't find referenced method 'void refreshAutoCompleteResults()' in program class androidx.appcompat.widget.SearchView$SearchAutoComplete
Warning: androidx.camera.camera2.impl.compat.CameraManagerCompat$AvailabilityCallbackExecutorWrapper$1: can't find referenced method 'void onCameraAccessPrioritiesChanged()' in library class android.hardware.camera2.CameraManager$AvailabilityCallback
Warning: androidx.recyclerview.widget.RecyclerView: can't find referenced method 'void saveAttributeDataForStyleable(android.content.Context,int[],android.util.AttributeSet,android.content.res.TypedArray,int,int)' in program class androidx.recyclerview.widget.RecyclerView
Warning: androidx.viewpager2.widget.ViewPager2: can't find referenced method 'void saveAttributeDataForStyleable(android.content.Context,int[],android.util.AttributeSet,android.content.res.TypedArray,int,int)' in program class androidx.viewpager2.widget.ViewPager2
Warning: there were 6 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 5 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: there were 7 unresolved references to library class members.
You probably need to update the library versions.
Alternatively, you may have to specify the option
'-dontskipnonpubliclibraryclassmembers'.
(http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedlibraryclassmember)
Il s'agit de règles de protection :
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in <android sdk path>/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 *;
#}
# Additional config for retaining stacktrace coherence
-dontskipnonpubliclibraryclassmembers
-keepattributes LineNumberTable, SourceFile, Exceptions, RuntimeVisibleAnnotations, AnnotationDefault
# Enums
-keepclassmembers enum * { *; }
# This is for retaining proper names of custom Exceptions
-keep public class * extends java.lang.Exception
# Remove log calls
-assumenosideeffects class android.util.Log {
public static *** d(...);
}
-assumenosideeffects class timber.log.Timber {
public static *** d(...);
}
# Android
-dontnote android.**
-dontnote com.android.**
## Do not obfuscate but allow shrinking of android-oauth-client
-keepnames class com.wuman.android.auth.** { *; }
# ButterKnife
-keep class butterknife.** { *; }
-dontwarn butterknife.internal.**
-keep class **$$ViewBinder { *; }
-keepclasseswithmembernames class * {
@butterknife.* <fields>;
}
-keepclasseswithmembernames class * {
@butterknife.* <methods>;
}
# OK
-dontwarn javax.annotation.**
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
-dontwarn org.codehaus.mojo.animal_sniffer.*
-dontwarn okhttp3.internal.platform.ConscryptPlatform
# Crashlytics
-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**
-dontnote io.fabric.**
# Nucleus (requires default empty constructor, ProGuard removes them)
# https://github.com/konmik/nucleus/issues/126
-keepclassmembers class * extends nucleus5.presenter.Presenter {
<init>();
}
-dontwarn nucleus.view.NucleusActionBarActivity
-dontnote nucleus5.**
# Google
-keep class com.google.android.gms.common.api.** { *; }
-dontnote com.google.**
# For using GSON @Expose annotation
-keepattributes *Annotation*
# Firebase
-dontnote com.firebase.**
# Amazon AWS Pinpoint
## Class names are needed in reflection
-keepnames class com.amazonaws.**
-keepclassmembers public class com.amazonaws.auth.AWS4Signer {
public <init>(...);}
## Request handlers defined in request.handlers
-keep class com.amazonaws.services.**.*Handler
## The following are referenced but aren't required to run
-dontwarn com.fasterxml.jackson.**
-dontwarn org.apache.commons.logging.**
## Android 6.0 release removes support for the Apache HTTP client
-dontwarn org.apache.http.**
## The SDK has several references of Apache HTTP client
-dontwarn com.amazonaws.http.**
-dontwarn com.amazonaws.metrics.**
## Spinner indicator
-keep class com.wang.avi.** { *; }
-keep class com.wang.avi.indicators.** { *; }
# Branch.io
-dontwarn com.google.firebase.appindexing.**
-dontwarn com.android.installreferrer.api.**
# Subsampling Scale View
-dontnote com.davemorrissey.**
# RxJava
-dontnote io.reactivex.**
# Realm
-dontnote io.realm.**
# Facebook
-dontnote com.facebook.**
# Dagger
-dontnote dagger.internal.**
# Experimental
-dontwarn **Lambda**
# org.apache.http.legacy (see https://issuetracker.google.com/issues/37070898)
-dontnote android.net.http.*
-dontnote org.apache.commons.codec.**
-dontnote org.apache.http.**
# MapWize
-dontwarn com.mapbox.**
-dontwarn com.unity3d.player.UnityPlayer
-keep class com.navisens.** {*;}
-keep class org.json.** {*;}
# ChatKit
-keep class * extends com.stfalcon.chatkit.messages.MessageHolders$OutcomingTextMessageViewHolder {
public <init>(android.view.View, java.lang.Object);
public <init>(android.view.View);
}
-keep class * extends com.stfalcon.chatkit.messages.MessageHolders$IncomingTextMessageViewHolder {
public <init>(android.view.View, java.lang.Object);
public <init>(android.view.View);
}
-keep class * extends com.stfalcon.chatkit.messages.MessageHolders$IncomingImageMessageViewHolder {
public <init>(android.view.View, java.lang.Object);
public <init>(android.view.View);
}
-keep class * extends com.stfalcon.chatkit.messages.MessageHolders$OutcomingImageMessageViewHolder {
public <init>(android.view.View, java.lang.Object);
public <init>(android.view.View);
}
# Twilio
-keep class com.twilio.chat.** { *; }
-keepattributes InnerClasses
#-keep interface com.twilio.chat.** { *; }
#-keep enum com.twilio.chat.** { *; }
## Keep native methods
-keepclasseswithmembernames class com.twilio.chat.** {
native <methods>;
}
# Volley
-keep class com.android.volley.** { *;}
-dontwarn com.android.volley.**
-keepclassmembers,allowshrinking,allowobfuscation class com.android.volley.NetworkDispatcher {
void processRequest();
}
-keepclassmembers,allowshrinking,allowobfuscation class com.android.volley.CacheDispatcher {
void processRequest();
}