По сути, при попытке создать свое приложение я получаю ошибки, указывающие на отсутствие классов из Dagger Hilt. , даже после реализации правил Proguard, предложенных в репозитории Dagger. Эта проблема оказалась довольно сложной, и я обращаюсь к сообществу за советом по ее решению.
Может ли кто-нибудь, имеющий опыт работы с Dagger Hilt и Proguard, предложить идеи по правильной настройке Proguard для решения этой проблемы? ошибки? вот мой код в моем проекте:
// proguard-rules.pro
Код: Выделить всё
# Keep file R and Manifest
-keep class **.R
-keep class **.R$* {*;}
-keep class **.BuildConfig {*;}
-keep class **.Manifest {*;}
-keep class androidx.constraintlayout.motion.widget.KeyAttributes { *; }
# Keep Dependency Injection Framework related classes and methods
-keep class dagger.hilt.** { *; }
-keep class javax.inject.** { *; }
-keep class javax.annotation.** { *; }
# Keep Model and Repository Classes
-keep class com.example.core.data.model.** { *; }
-keep class com.example.core.data.repo.** { *; }
# Keep ViewModels
-keep class * extends androidx.lifecycle.ViewModel
# Keep Parcelable Classes
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
# Keep UI-related classes
-keep class com.example.ui.activity.** { *; }
-keep class com.example.ui.fragment.** { *; }
-keep class com.example.service.** { *; }
# Menjaga semua kelas dalam paket tertentu
-keep class com.example.package.** { *; }
# Menjaga semua kelas yang disebutkan dalam file tertentu
#-keep @com.example.rules.txt
# Menjaga kelas model
-keep class com.example.model.** { *; }
# Menjaga kelas service
-keep class com.example.service.** { *; }
# Menjaga kelas-kelas yang diperlukan untuk penanganan SSL/TLS
-keep class okhttp3.internal.platform.ConscryptPlatform {*;}
-keep class okhttp3.internal.platform.OpenJSSEPlatform {*;}
-keep class org.bouncycastle.** {*;}
-keep class org.conscrypt.** {*;}
-keep class org.openjsse.** {*;}
# Keep classes required by OpenJSSE
-keep class sun.security.x509.** { *; }
-keep class sun.util.logging.** { *; }
-keep class com.example.projectone.GithubUserApplication { *; }
-keep class com.example.projectone.ui.main.MainActivity { *; }
-keep class com.example.projectone.ui.userdetail.DetailUserActivity { *; }
# Keep classes generated by Hilt
-keep class com.example.projectone.*Hilt* {
*;
}
# Keep Hilt generated classes
-keep class com.example.projectone.Hilt_* {*;}
-keep,allowobfuscation,allowshrinking @dagger.hilt.EntryPoint class *
-keep,allowobfuscation,allowshrinking @dagger.hilt.android.EarlyEntryPoint class *
Код: Выделить всё
-dontwarn com.example.projectone.Hilt_GithubUserApplication
-dontwarn com.example.projectone.ui.main.Hilt_MainActivity
-dontwarn com.example.projectone.ui.userdetail.Hilt_DetailUserActivity
Отсутствует класс com.example.projectone.Hilt_GithubUserApplication (ссылка из: void com.example .projectone.GithubUserApplication.() и еще 1 контекст)
При запуске R8 обнаружены отсутствующие классы. Добавьте недостающие классы или примените дополнительные правила хранения, созданные в файле Missing_rules.txt (см. файл выше)
Отсутствует класс com.example.projectone.ui.main.Hilt_MainActivity (ссылка на: void com.example.projectone.ui.main.MainActivity.() и 5 других контекстов)
Отсутствует класс com.example.projectone.ui.userdetail.Hilt_DetailUserActivity (ссылка на: void com.example.projectone.ui.userdetail.DetailUserActivity.() и 5 других контекстов)< /p>
Вызвано: [ЦИРКУЛЯРНАЯ ССЫЛКА: com.android.tools.r8.utils.b: Отсутствует класс com.example. projectone.Hilt_GithubUserApplication (ссылка на: void com.example.projectone.GithubUserApplication.() и еще 1 контекст)
Будем очень признательны за любую помощь или совет . Спасибо за ваше время и поддержку.
Подробнее здесь: https://stackoverflow.com/questions/781 ... uard-rules
Мобильная версия