After upgrading to Android Studio Flamingo using JDK 17 and AGP 8 I'm getting this error:
ERROR: R8: Library class android.net.http.AndroidHttpClient implements program class org.apache.http.client.HttpClient
Here's my build.gradle(app)
android {
compileSdkVersion 33
buildToolsVersion "33.0.2"
buildTypes {
release {
debuggable false
minifyEnabled true
zipAlignEnabled true
}
}
}
Here's my build.gradle(app)
buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:8.0.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.20"
classpath 'com.google.gms:google-services:4.3.14'
classpath "io.insert-koin:koin-gradle-plugin:$koin_version"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$navigation_version"
classpath "com.google.protobuf:protobuf-gradle-plugin:$proto_buf_version"
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2'
}
}
After running ./gradlew buildEnvironment
couldn't find any usages of org.apache.http.client.HttpClient
Any suggestions would be very appreciated.
I'm dealing with a legacy project that contains a lot of libraries and it would be very difficult to chase down all libraries that would face problems on R8/Proguard migrations.
What helped me was adding this to my proguard file:
-dontwarn org.apache.httpcomponents
-dontwarn com.google.protobuf.java_com_google_android_gmscore_sdk_target_granule__proguard_group_gtm_N1281923064GeneratedExtensionRegistryLite$Loader
-dontwarn javax.naming.NamingEnumeration
-dontwarn javax.naming.NamingException
-dontwarn javax.naming.directory.Attribute
-dontwarn javax.naming.directory.Attributes
-dontwarn javax.naming.directory.DirContext
-dontwarn javax.naming.directory.InitialDirContext
-dontwarn android.content.res.XmlResourceParser
-dontwarn android.net.http.AndroidHttpClient
-dontwarn com.google.firebase.iid.FirebaseInstanceId
-dontwarn javax.naming.ldap.LdapName
-dontwarn javax.naming.ldap.Rdn
-dontwarn javax.servlet.ServletContextEvent
-dontwarn javax.servlet.ServletContextListener
-dontwarn org.apache.avalon.framework.logger.Logger
-dontwarn org.apache.log.Hierarchy
-dontwarn org.apache.log.Logger
-dontwarn org.apache.log4j.Level
-dontwarn org.apache.log4j.Logger
-dontwarn org.apache.log4j.Priority
-dontwarn org.ietf.jgss.GSSContext
-dontwarn org.ietf.jgss.GSSCredential
-dontwarn org.ietf.jgss.GSSException
-dontwarn org.ietf.jgss.GSSManager
-dontwarn org.ietf.jgss.GSSName
-dontwarn org.ietf.jgss.Oid
-dontwarn javax.naming.InvalidNameException
I'll add them to the force exclude group on my next tests and post the results here. Thanks, everyone!