proguard-rules.pro не используется - PullRequest
0 голосов
/ 29 марта 2019

Это мой proguard-rules.pro файл: (Я не уверен, что мне действительно нужно включать правила для com.github.chrisbanes)

-keep public class com.google.android.gms.* { public *; }
-dontwarn com.google.android.gms.**
-keep class com.squareup.** { *; }
-dontwarn com.squareup.**
-keep class com.github.chrisbanes.** { *; }
-dontwarn com.github.chrisbanes.**

, потому что я использовал:

api 'com.google.android.gms:play-services-ads:17.2.0'
api 'androidx.appcompat:appcompat:1.0.2'
api 'com.squareup.picasso:picasso:2.71828'
implementation 'com.github.chrisbanes:PhotoView:2.3.0'

Я использовал этот proguard-rules.pro файл (без com.github.chrisbanes библиотеки) ранее для других приложений, в которых была реклама Google и библиотека Пикассо, и это работало.

Теперь я получаю кучу ошибок, когда пытаюсь сгенерировать подписанныйAPK, например:

Note: the configuration keeps the entry point 'com.google.android.gms.internal.ads.zzapm { void requestInterstitialAd(android.content.Context,com.google.android.gms.ads.mediation.MediationInterstitialListener,android.os.Bundle,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationInterstitialListener'
Note: the configuration keeps the entry point 'com.google.android.gms.internal.ads.zzapm { void requestInterstitialAd(android.content.Context,com.google.android.gms.ads.mediation.MediationInterstitialListener,android.os.Bundle,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.squareup.picasso.BitmapHunter { android.graphics.Bitmap decodeStream(okio.Source,com.squareup.picasso.Request); }', but not the descriptor class 'okio.Source'
Note: the configuration keeps the entry point 'com.squareup.picasso.Downloader { okhttp3.Response load(okhttp3.Request); }', but not the descriptor class 'okhttp3.Request'

Похоже, что Android Studio вообще не использует мой файл proguard-rules.pro.

Кроме того, что нового в этом приложении по сравнению с приложениями ранее, это то, что вВ этом приложении я впервые использую androidx и нацеливаюсь на API 28.

Знаете ли вы, где проблема и как ее исправить?

Кроме того, можно ли просто использовать -ignorewarningsи создать подписанный APK?Будет ли мое приложение работать нормально?

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

Могу ли я просто использовать -ignorewarnings и создать подписанный APK? Будет ли мое приложение работать нормально?

Обычно, вы не должны просто игнорировать предупреждения Proguard, не зная его влияния, но иногда предупреждения могут игнорироваться, так как ваше приложение может не ссылаться на эти классы, поэтому вы можете попробовать добавить конфигурацию ниже и проверить, может ли ваше приложение работать нормально.

-keep class com.google.android.gms.**
-dontwarn com.google.android.gms.**

Кроме того, ваши журналы ошибок на самом деле от Proguard. Попробуйте разные версии gms, чтобы увидеть, работает ли он. например попробуйте 15.0.0.

api 'com.google.android.gms:play-services-ads:15.0.0'
0 голосов
/ 29 марта 2019

Проверьте местоположение вашего proguard-rules.pro. Он должен находиться в каталоге модуля приложения.

У меня была такая же проблема некоторое время назад. Мой proguard-rules.pro был расположен в корневом каталоге проекта, и я переместил его в каталог приложения.

...