gpt4 book ai didi

java - 在 Eclipse 中导出 Android 应用程序时,Proguard 似乎没有效果/无法运行

转载 作者:行者123 更新时间:2023-12-02 05:30:50 29 4
gpt4 key购买 nike

我即将发布一个 Android 应用程序,并希望使用 Proguard 来混淆代码。我按照 Googles Proguard Guide 中描述的进行了所有操作但 Proguard 似乎没有运行:

这就是我所做的:

  1. 指南说,“在项目的根目录中自动生成 proguard.cfg 文件” 我的项目根目录中没有这样的文件,但有一个 proguard-project.txt文件。我认为这就是指南所讨论的 confic 文件。
  2. 我没有对 proguard-project.txt 进行任何更改文件。因此 Proguard 应该适用于所有类名等。
  3. 我编辑了project.properties并取消注释 proguard.config=...行:

    proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

根据指南,这应该是配置 Proguard 所需的全部内容。运行 Proguard 不需要的只是在 Release mode 中构建应用程序。 。

我不知道如何手动运行 Release mode 中的应用程序但正如指南所说,这是在使用“文件/导出/导出 Android 应用程序”菜单构建应用程序时自动完成的。

因此,我导出了应用程序来创建 APK。 guid 表示 Proguard 每次运行时都会在项目目录中创建多个文件和文件夹,例如dump.txt , mapping.txt等等。但是这些文件都没有创建。此外,控制台或日志中没有输出。因此我假设 Proguard 没有运行。

是否有一种(简单)方法来测试文件是否被混淆/Proguard 是否运行?为了让 Proguard 工作,我还需要做什么?

最佳答案

我认为 proguard-project.txt 的默认版本什么也不做。它可能是这样的:

# To enable ProGuard in your project, edit project.properties
# to define the proguard.config property as described in that file.
#
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in ${sdk.dir}/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the ProGuard
# include property in project.properties.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
#
# Add any project specific keep options here:
#
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}

首先尝试向该文件添加一些内容以检查项目编译时间是否发生变化。例如:

-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
-optimizationpasses 5
-allowaccessmodification
-dontpreverify
-renamesourcefileattribute SourceFile
-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable,Signature
# Obfuscation
-repackageclasses ''
-flattenpackagehierarchy ''

您还可以检查运行 apktool Decode YOUR_APK 您的类和方法是否已重命名

希望这对您有帮助!

关于java - 在 Eclipse 中导出 Android 应用程序时,Proguard 似乎没有效果/无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25552890/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com