Proguard:Android Studio:找不到符号 class ErrorListener、方法、ImageCache

Proguard: Android Studio: cannot find symbol class ErrorListener, Method, ImageCache

我是 Proguard 的新手,我正在我的应用程序中实现它

App->Module1->ApIManager->Volley是依赖图

我正在使用 Grale。没有 Proguard 一切都运行良好。但是,对于 Proguard,我在三个 class 用途上得到了上面的错误。

我注意到所有这些都在 com.android.volley 下并且是接口

我的 APImanager 和 volley Proguard.cfg 是

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
#-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {
    native <methods>;
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers class * extends android.app.Activity {
   public void *(android.view.View);
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}

#---------------------------------------------------------------------------------------------
-renamesourcefileattribute SourceFile
-keepattributes  Signature,SourceFile,LineNumberTable

-keep interface com.android.volley.Response$ErrorListener { *; }
-keep interface com.android.volley.toolbox$ImageLoader { *; }
-keep interface com.android.volley.Request$Method { *; }

-keep public class * extends android.app.Application

-keep class android.support.v4.app.** { *; }
-keep class com.actionbarsherlock.** { *; }
-keep class com.android.volley.** { *; }

-keepattributes *Annotation*


-dontwarn org.apache.**
-keep class org.apache.commons.logging.**

构建错误:

:volley:transformClassesAndResourcesWithSyncLibJarsForRelease
:volley:mergeReleaseJniLibFolders UP-TO-DATE
:volley:transformNative_libsWithMergeJniLibsForRelease UP-TO-DATE
:volley:transformNative_libsWithSyncJniLibsForRelease UP-TO-DATE
:volley:bundleRelease
:apimanager:prepareComAndroidSupportAnimatedVectorDrawable2340Library UP-TO-DATE
:apimanager:prepareComAndroidSupportAppcompatV72340Library UP-TO-DATE
:apimanager:prepareComAndroidSupportSupportV42340Library UP-TO-DATE
:apimanager:prepareComAndroidSupportSupportVectorDrawable2340Library UP-TO-DATE
:apimanager:prepareComAndroidVolleyVolleyUnspecifiedLibrary
:apimanager:prepareReleaseDependencies
:apimanager:compileReleaseAidl UP-TO-DATE
:apimanager:compileReleaseRenderscript UP-TO-DATE
:apimanager:generateReleaseBuildConfig UP-TO-DATE
:apimanager:mergeReleaseShaders UP-TO-DATE
:apimanager:compileReleaseShaders UP-TO-DATE
:apimanager:generateReleaseAssets UP-TO-DATE
:apimanager:mergeReleaseAssets UP-TO-DATE
:apimanager:generateReleaseResValues UP-TO-DATE
:apimanager:generateReleaseResources UP-TO-DATE
:apimanager:mergeReleaseResources UP-TO-DATE
:apimanager:processReleaseManifest UP-TO-DATE
:apimanager:processReleaseResources UP-TO-DATE
:apimanager:generateReleaseSources UP-TO-DATE
:apimanager:incrementalReleaseJavaCompilationSafeguard UP-TO-DATE
:apimanager:compileReleaseJavaWithJavac
:apimanager:compileReleaseJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
--Path--\apimanager\APIManager.java
Error:(124, 105) error: cannot find symbol class ErrorListener
Error:(133, 107) error: cannot find symbol class ErrorListener
Error:(50, 32) error: cannot find symbol class ImageCache
Error:(66, 32) error: cannot find symbol class ImageCache
--Path--\apimanager\CategoryRequest.java
Error:(24, 82) error: cannot find symbol class ErrorListener
Error:(25, 15) error: cannot find symbol variable Method
--Path--\apimanager\ProductRequest.java
Error:(32, 80) error: cannot find symbol class ErrorListener
Error:(33, 15) error: cannot find symbol variable Method
:apimanager:compileReleaseJavaWithJavac FAILED
Error:Execution failed for task ':apimanager:compileReleaseJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
Information:BUILD FAILED

代码在没有 proguard 的情况下运行良好,我已经尝试了几乎所有的东西,并且在没有帮助的情况下也经历了很多教程。

在多项目构建中将 ProGuard 应用于库项目时,您应该在 gradle 中使用以下指令指定使用的规则:

consumerProguardFiles('...')

这样它们也将自动包含在消费应用程序项目中,并将应用所需的保留规则。