Java 如何在Android Studio中启用ProGuard模糊处理?

Java 如何在Android Studio中启用ProGuard模糊处理?,java,android,android-studio,Java,Android,Android Studio,我必须在Android Studio中启用Proguard模糊处理来保护我的应用程序。我一直在寻找如何应用它的过程,但没有得到任何明确的解决方案。当我尝试它时,我总是会出错。那么,有人能告诉我在我的应用程序中应用它的明确步骤吗 我将通过以下步骤来实现这一点: 在Android Studio中,打开一个Android项目 更改为项目视图 更改以下行: minifyEnable false到minifyEnable true 设置程序保护规则(可选) 4.1在项目视图中,选择proguard-rul

我必须在Android Studio中启用Proguard模糊处理来保护我的应用程序。我一直在寻找如何应用它的过程,但没有得到任何明确的解决方案。当我尝试它时,我总是会出错。那么,有人能告诉我在我的应用程序中应用它的明确步骤吗

我将通过以下步骤来实现这一点:

  • 在Android Studio中,打开一个Android项目

  • 更改为项目视图

  • 更改以下行:

    minifyEnable false
    minifyEnable true

  • 设置程序保护规则(可选)

    4.1在项目视图中,选择proguard-rules.pro文件

    4.2添加以下行,告诉ProGuard不要混淆某些类

    -keepclassmembers class com.dom925.xxxx 
    {
      public *
    }
    
  • 我通过以下步骤得到的错误是

    错误:任务“:app:packageRelease”的执行失败。 无法计算D:\Android\Pojectname\app\build\intermediates\classes proguard\release\classes.jar的哈希值


    我解决了问题:

    打开项目的proguard-rules.pro并将其添加到底部:

    -dontwarn java.nio.file.Files
    -dontwarn java.nio.file.Path
    -dontwarn java.nio.file.OpenOption
    -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
    
    基本上,我是如何解决这个问题的,我试图在“发布”模式下运行我的应用程序,但遇到了一系列类似于这家伙的错误:

    我几乎完全按照他说的去做,并把它修好了

    希望这可以帮助其他人生成他们的APK

    请访问此处了解更多详细信息:


    在Android Studio中启用ProGuard

    下面是如何在Android Studio中启用默认ProGuard的示例

  • 转到应用程序的build.gradle文件
  • 启用minifyEnabled true
  • 启用shrinkResources true以减小APK大小
  • proguardFiles getDefaultProguardFile('proguard-android.txt')
    以启用默认设置。如果要使用自己的proguard文件,请使用以下规则

    buildTypes {
        release {
            debuggable false
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    
        debug {
            debuggable true
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    
  • 这些链接中提供了Android ProGuard设置和其他设置的链接:


    有关更多详细信息,请浏览

    如果您正在使用jack构建android项目,那么它将自动进行收缩、模糊处理、重新打包和多重索引。 只需在中添加以下内容:

    defaultConfig {
           jackOptions {
                enabled true
            }        
        }
    
    在构建类型中,提到项目
    proguard
    文件:

    buildTypes {
            release {
                // Jack build environment does not require minifyEnabled or shrinkResources.
                // Conceptually, the jack compiler consolidates the functionality of javac, ProGuard, and dex in a single conversion step
                //minifyEnabled = true      
                //shrinkResources true
    
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
           }
    
           debug {
    ...................
            }
        } 
    
    要禁用ProGuard模糊处理,需要在ProGuard-project.txt文件中添加以下行

    ####No obfuscation
    -dontobfuscate
    

    发布你的build.gradle,这样我们就可以根据你的依赖性做出更准确的回答这里有一些参考,但我还是得到了一些错误朋友为什么我们需要为调试而混淆?好问题!!但是,如果您想根据您可以忽略的用例使用,这是一个可用的选项。