Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
导出已签名、模糊的Android应用程序时,如何在Eclipse中设置ProGuard?_Android_Eclipse_Obfuscation_Proguard - Fatal编程技术网

导出已签名、模糊的Android应用程序时,如何在Eclipse中设置ProGuard?

导出已签名、模糊的Android应用程序时,如何在Eclipse中设置ProGuard?,android,eclipse,obfuscation,proguard,Android,Eclipse,Obfuscation,Proguard,我正在发布一个在Eclipse中开发的Android应用程序,正如标题中所述,我想将Proguard模糊处理集成到构建中,专门用于导出已签名的应用程序 有谁不走蚂蚁之路就有好运吗?好的,这是关于这个主题的最相关也是最新的帖子: 它使用Ant,但所有的硬部件都是为您完成的,只要您按照说明操作,它就可以工作。注意:不要跳过更新,这只适用于SDK r7+,对于AVD更新,运行eclipse的更新也不是一个坏主意 对于任何添加外部JAR的用户,请设置ProGuards procfg.txt并添加: -

我正在发布一个在Eclipse中开发的Android应用程序,正如标题中所述,我想将Proguard模糊处理集成到构建中,专门用于导出已签名的应用程序


有谁不走蚂蚁之路就有好运吗?

好的,这是关于这个主题的最相关也是最新的帖子:

它使用Ant,但所有的硬部件都是为您完成的,只要您按照说明操作,它就可以工作。注意:不要跳过更新,这只适用于SDK r7+,对于AVD更新,运行eclipse的更新也不是一个坏主意

对于任何添加外部JAR的用户,请设置ProGuards procfg.txt并添加:


-libraryjars{path}{file_name}.jar

我也希望在不使用Ant或命令行方法的情况下实现这一点。以下是工作原理(仅限Eclipse+Windows):

  • (您需要下载Proguard。脚本希望在这里找到它:C:\android-sdk\u r04-windows\Proguard\lib\Proguard.jar)

  • 创建Windows批处理文件“C:\android-sdk\U r04-Windows\obfusc.bat”:

  • 在Eclipse中,打开Android项目的属性页面,选择“构建器”窗格并添加一个类型为“Program”的新构建器。在主选项卡的“Location”字段中,在上一步中输入脚本的绝对路径。在“工作目录”字段中放入变量${build_project}。在“构建选项”选项卡中,在“运行构建器”下选择“清理后”

  • 确保这个构建工具排在最后,就在Android软件包生成器之前

  • 在Android项目的根文件夹中创建proguard配置文件。我稍微自定义了这些,并将它们包含在修订控制中,但这取决于您。我使用的文件名为“android.pro”,如脚本中所述,与dev blog中的配置类似,但包含一个带有injar、outjar和libraryjar语句的头,例如:

  • 您将希望在大多数情况下关闭此生成器。当需要测试或导出一个模糊的APK时,打开它,然后从Eclipse执行“Project>Clean”,包括该项目和它所依赖的任何库项目

我想就是这样。

如果您使用的是eclipse,只需取消注释
project.properties
行即可

# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

现在新的Eclipse和Android SDK还需要它吗?那么在所有步骤之后,模糊的apk存储在哪里呢?的答案描述了已更新的更改,以尊重SDK中的更改。

    -injars      bin(!.svn/**)
    -outjars     obfuscated
    -libraryjars C:\android-sdk_r04-windows\android-sdk-windows\platforms\android-1.6\android.jar
    -libraryjars C:\GoogleAnalyticsAndroid_0.7\libGoogleAnalytics.jar

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

    -printmapping proguard.map
    -keepattributes SourceFile,LineNumberTable

    -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 com.android.vending.licensing.ILicensingService

    -keepclasseswithmembernames class * {
        native ;
    }

    -keepclasseswithmembernames class * {
        public (android.content.Context, android.util.AttributeSet); 
    }

    -keepclasseswithmembernames class * {
        public (android.content.Context, android.util.AttributeSet, int); 
    }

    -keepclassmembers enum * {
        public static **[] values();
        public static ** valueOf(java.lang.String);
    }
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt