Возникла проблема с правилами Dagger Hilt Proguard.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Возникла проблема с правилами Dagger Hilt Proguard.

Сообщение Anonymous »

У меня возникла проблема с Proguard при использовании Dagger Hilt для внедрения зависимостей в моем проекте. Несмотря на использование различных решений, я все еще сталкиваюсь с ошибками, связанными с отсутствующими классами, созданными Dagger Hilt.
По сути, при попытке создать свое приложение я получаю ошибки, указывающие на отсутствие классов из 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 *

// Missing_rules.txt

Код: Выделить всё

-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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»