簡體   English   中英

如何在使用Android Studio時生成ProGuard模糊處理?

[英]How to generate ProGuard obfuscation in using Android Studio?

我必須通過在Android Studio中啟用Pro Guard模糊處理來保護我的應用。 我已經搜索了如何應用它的過程,但是沒有得到任何明確的解決方案。 當我嘗試它時,我總是會出錯,所以任何人都可以給我解決方案。

錯誤日志:

Information:Gradle tasks [:app:assembleRelease]
:app:preBuild UP-TO-DATE
:app:preReleaseBuild UP-TO-DATE
:app:checkReleaseManifest
:app:preDebugBuild UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72311Library UP-TO-DATE
:app:prepareComAndroidSupportDesign2311Library UP-TO-DATE
:app:prepareComAndroidSupportRecyclerviewV72311Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42311Library UP-TO-DATE
:app:prepareReleaseDependencies
:app:compileReleaseAidl
:app:compileReleaseRenderscript
:app:generateReleaseBuildConfig
:app:generateReleaseAssets UP-TO-DATE
:app:mergeReleaseAssets
:app:generateReleaseResValues UP-TO-DATE
:app:generateReleaseResources
:app:mergeReleaseResources
:app:processReleaseManifest
:app:processReleaseResources
:app:generateReleaseSources
:app:processReleaseJavaRes UP-TO-DATE
:app:compileReleaseJavaWithJavac

Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

 :app:compileReleaseNdk UP-TO-DATE
 :app:compileReleaseSources
 :app:proguardRelease
 Exception while processing task 
 java.io.IOException: Can't read [D:\Android\Package_name\app\bin\classes]    (No      such file or directory)
 at proguard.InputReader.readInput(InputReader.java:188)
 at proguard.InputReader.readInput(InputReader.java:158)
 at proguard.InputReader.readInput(InputReader.java:136)
 at proguard.InputReader.execute(InputReader.java:66)
 at proguard.ProGuard.readInput(ProGuard.java:218)
 at proguard.ProGuard.execute(ProGuard.java:82)
 at proguard.gradle.ProGuardTask.proguard(ProGuardTask.java:1074)
          atcom.android.build.gradle.tasks.AndroidProGuardTask.doMinification(AndroidProGuardTask.java:139)
  atcom.android.build.gradle.tasks.AndroidProGuardTask$1.run(AndroidProGuardTask.java:115)
at com.android.builder.tasks.Job.runTask(Job.java:48)
at com.android.build.gradle.tasks.SimpleWorkQueue$EmptyThreadContext.runTask(SimpleWorkQueue.java:41)
at com.android.builder.tasks.WorkQueue.run(WorkQueue.java:227)
at java.lang.Thread.run(Thread.java:745)
Error:java.io.IOException: No such file or directory
at proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:50)
at proguard.InputReader.readInput(InputReader.java:184)
... 12 more
:app:dexRelease
:app:validateExternalOverrideSigning
:app:packageRelease FAILED
 Error:Execution failed for task ':app:packageRelease'.

無法計算D:\\ Android \\ Package_name \\ app \\ build \\ intermediates \\ classes-proguard \\ release \\ classes.jar的哈希值信息:構建失敗信息:總時間:9.667秒信息:2錯誤信息:0警告信息:查看完整控制台輸出

建立gradle:-

apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion '23.0.1'

defaultConfig {
    applicationId "package_name"
    minSdkVersion 16
    targetSdkVersion 22
    versionCode 1
    versionName "1.1"
}

dexOptions {
    javaMaxHeapSize "4g"
}
buildTypes {
    release
            {
                minifyEnabled true
                proguardFile 'D:/Android/Packagename/app/proguard-rules.pro'
            }
    debug
            {
                debuggable true
                minifyEnabled true
                proguardFile 'D:/Android/Packagename/app/proguard-rules.pro'
                applicationIdSuffix ".debug"

            }
}

packagingOptions {
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE.txt'
  }
  }

  dependencies {
  compile fileTree(include: ['*.jar'], dir: 'libs')
  compile 'com.android.support:appcompat-v7:23.1.0'
  compile 'com.android.support:design:23.1.1'
  }

proguard-rules.pro:-

-injars      bin/classes
-injars      libs
-injars      com.android.support:appcompat-v7:23.1.0
-injars      com.android.support:design:23.1.1
-libraryjars /usr/local/java/android-sdk/platforms/android-22/android.jar

-dontpreverify
-repackageclasses ''
-allowaccessmodification
-optimizations !code/simplification/arithmetic
-keepattributes *Annotation*

-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.view.View {
 public <init>(android.content.Context);
 public <init>(android.content.Context, android.util.AttributeSet);
 public <init>(android.content.Context, android.util.AttributeSet, int);
 public void set*(...);
 }

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

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

-keepclassmembers class * implements android.os.Parcelable {
 static android.os.Parcelable$Creator CREATOR;
 }

-keepclassmembers class **.R$* {
 public static <fields>;
 }

 -dontwarn android.support.**
 -dontwarn com.github.**
 -dontwarn com.squareup.picasso.**
 -dontwarn com.etsy.android.grid.**
 -dontwarn java.nio.file.Files
 -dontwarn java.nio.file.Path
 -dontwarn java.nio.file.OpenOption
 -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement

請嘗試更換

proguardFile 'D:/Android/Packagename/app/proguard-rules.pro' 

與:

proguardFile 'proguard-rules.pro'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM