diff --git a/hilt-android/main/resources/META-INF/com.android.tools/proguard/hilt-android.pro b/hilt-android/main/resources/META-INF/com.android.tools/proguard/hilt-android.pro index 4e8b7f3c40b..cf9d5d6712f 100644 --- a/hilt-android/main/resources/META-INF/com.android.tools/proguard/hilt-android.pro +++ b/hilt-android/main/resources/META-INF/com.android.tools/proguard/hilt-android.pro @@ -2,4 +2,9 @@ # See b/183070411#comment4 for more info. -keep,allowobfuscation,allowshrinking @dagger.hilt.internal.ComponentEntryPoint class * -keep,allowobfuscation,allowshrinking @dagger.hilt.internal.GeneratedEntryPoint class * --keep,allowobfuscation,allowshrinking @dagger.hilt.android.EarlyEntryPoint class * \ No newline at end of file +-keep,allowobfuscation,allowshrinking @dagger.hilt.android.EarlyEntryPoint class * + +# Prevent R8 full mode from vertically merging Hilt_* base classes with +# @AndroidEntryPoint user classes. The bytecode transform rewrites user classes +# to extend Hilt_*; vertical class merging breaks this hierarchy. +-keep,allowobfuscation,allowshrinking class **.Hilt_* \ No newline at end of file diff --git a/hilt-android/main/resources/META-INF/com.android.tools/r8/hilt-android.pro b/hilt-android/main/resources/META-INF/com.android.tools/r8/hilt-android.pro index 4e8b7f3c40b..cf9d5d6712f 100644 --- a/hilt-android/main/resources/META-INF/com.android.tools/r8/hilt-android.pro +++ b/hilt-android/main/resources/META-INF/com.android.tools/r8/hilt-android.pro @@ -2,4 +2,9 @@ # See b/183070411#comment4 for more info. -keep,allowobfuscation,allowshrinking @dagger.hilt.internal.ComponentEntryPoint class * -keep,allowobfuscation,allowshrinking @dagger.hilt.internal.GeneratedEntryPoint class * --keep,allowobfuscation,allowshrinking @dagger.hilt.android.EarlyEntryPoint class * \ No newline at end of file +-keep,allowobfuscation,allowshrinking @dagger.hilt.android.EarlyEntryPoint class * + +# Prevent R8 full mode from vertically merging Hilt_* base classes with +# @AndroidEntryPoint user classes. The bytecode transform rewrites user classes +# to extend Hilt_*; vertical class merging breaks this hierarchy. +-keep,allowobfuscation,allowshrinking class **.Hilt_* \ No newline at end of file