Skip to content

R8 raise warning that there are missing classes while optimizing #10057

Open
@ganadist

Description

@ganadist

What version of gRPC-Java are you using?

  • 1.54.0

What is your environment?

  • OS : Any
  • Jdk : OpenJDK 11 / 17
  • Gradle 8.0.2
  • Android Gradle Plugin 7.4.2 / 8.0.0
  • Kotlin 1.7.21

What did you expect to see?

  • Android App build can be succeed

What did you see instead?

  • App build is failed with following warnings / errors
                                         buffers
:app:minifyProductionReleaseWithR8 FAILED
WARNING: app/build/intermediates/merged_java_res/productionRelease/base.jar: 
ERROR:Missing classes detected while running R8. 
Please add the missing classes or apply additional keep rules that are generated in app/build/outputs/mapping/productionRelease/missing_rules.txt.
This will become an error in AGP 8.0.   
ERROR:R8: 
Missing class javax.naming.NamingEnumeration (referenced from: void io.grpc.internal.JndiResourceResolverFactory$JndiRecordFetcher.closeThenThrow(javax.naming.NamingEnumeration, javax.naming.NamingException) and 1 other context)  
Missing class javax.naming.NamingException (referenced from: void io.grpc.internal.JndiResourceResolverFactory$JndiRecordFetcher.closeThenThrow(javax.naming.NamingEnumeration, javax.naming.NamingException) and 4 other contexts)
Missing class javax.naming.directory.Attribute (referenced from: java.util.List io.grpc.internal.JndiResourceResolverFactory$JndiRecordFetcher.getAllRecords(java.lang.String, java.lang.String))       
Missing class javax.naming.directory.Attributes (referenced from: java.util.List io.grpc.internal.JndiResourceResolverFactory$JndiRecordFetcher.getAllRecords(java.lang.String, java.lang.String))      
Missing class javax.naming.directory.DirContext (referenced from: void io.grpc.internal.JndiResourceResolverFactory$JndiRecordFetcher.closeThenThrow(javax.naming.directory.DirContext, javax.naming.NamingException) and 1 other context)      
Missing class javax.naming.directory.InitialDirContext (referenced from: java.util.List io.grpc.internal.JndiResourceResolverFactory$JndiRecordFetcher.getAllRecords(java.lang.String, java.lang.String))       
~

Workaround

Add following rules for missing classes

-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

Steps to reproduce the bug

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions