【问题标题】:proguard-project.txt not found in android studio在 android studio 中找不到 proguard-project.txt
【发布时间】:2014-06-02 16:27:15
【问题描述】:

我是 Android 和 Android Studio 的新手。

在学习期间,我遇到了 Google Play Services for Ads 等。

我尝试在我的项目中启用 proguard,但阅读了以下链接 proguard

问题是我无法在我的项目结构中找到 proguard-project.txtproguard.cfg...

我的项目结构中有一个 proguard-rules.txt...

如何在我的项目中找到这些丢失的文件并配置proguard...

请帮忙...

【问题讨论】:

  • proguard-rules.txt 是您自己创建的,还是生成的?

标签: android android-studio proguard


【解决方案1】:

请改用 proguard-rules.txt 文件。 Proguard 对其规则输入文件的名称没有任何特殊意义。它使用您构建文件中设置的任何内容,对于在最新版本的 Android Studio 中创建的新项目,这些设置是:

buildTypes {
     release {
         runProguard false
         proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
     }
 }

proguard-android.txt 文件位于您的 SDK 中,并包含所有项目都应使用的合理的 Android 范围默认值。

【讨论】:

  • proguard-rules.txt 在哪里?
  • 在更现代的 Android Studio 版本中,新建项目向导会在您的应用程序模块目录中创建一个 proguard-rules.pro 文件。
  • 我猜我的项目代码是旧的。即使我定期更新我的 Android Studio,它也不会自动创建 proguard-rules.pro...
  • 是的,在我的情况下它也不会创建。我从新建项目向导创建的空项目中复制了 proguard-rules.pro。
  • 即使在 Android Studio 中创建一个新项目,据我所知,它也不会生成这个 proguard-rules.txt ......而且我有最新版本的 android studio。
【解决方案2】:

我在开始使用 Android Studio

时遇到了同样的问题

您看不到ProGuard 文件,因为您正在以非Project file 模式预览您的项目。最有可能是Android 查看模式。

您必须通过单击Android选择的下拉列表并选择Project Files来更改模式,以查看项目中的所有文件,如下所示:

然后就可以在Android项目结构查看模式下看到隐藏文件了。

这是一个很好的exampleProGuard

【讨论】:

  • 很好的答案。您能否告诉我,当 .pro 更改为 .txt 时,因为我尝试了这个但没有更改扩展名?
  • @VVB 我不确定您使用的是哪个操作系统,但大多数人在您替换文件扩展名时会询问您是否只想更改文件名或文件扩展名.. 只需确保您不只是更改文件名.. 我希望这会有所帮助
【解决方案3】:

你可以在

中找到proguard-project.txt
C:\Users\"USER"\AppData\Local\Android\android-studio\sdk\tools\proguard

"USER" 是您在单击 c-drive \users \yourname 时将看到的名称

【讨论】:

  • 谢谢耶稣。有人实际上只是说在哪里。
  • Linux 用户类似,通常是~\Android\sdk\tools\proguard。另外,为什么这不是公认的答案?
  • 只是添加,对于 MAC 路径将是 ~/Library/Android/sdk/tools/proguard
【解决方案4】:

之前贴的代码必须根据你的使用情况修正为以下:

buildTypes {
     release {
         minifyEnabled true  //according to your use
         // or
         minifyEnabled false //according to your use
         // runProguard false ** NOT USED ANYMORE, replaced by minifyEnabled
         proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
     }
 }

【讨论】:

    【解决方案5】:

    我在装有 Android Studio 的 Windows 机器上的任何地方都找不到这个 proguard-rules.txt。但是,我确实找到了 LayoutExample\app\proguard-rules.pro 文件。这可能是因为我从 Eclipse 导入了我的项目,所以 Android Studio 没有自动创建一个。所以我所做的是:

    1 - 将示例项目中的 proguard-rules.pro 复制到与我的项目的 build.gradle 相同的文件夹中(您可以在计算机上搜索此文件或创建一个空项目)

    2 - 编辑 build.gradle 中的代码以使用此文件而不是 proguard-rules.txt,例如

        buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
    }
    
    1. 同步 gradle,然后构建 > 构建 APK。对我来说效果很好。

    【讨论】:

      【解决方案6】:

      proguard-rules.txt 可以在 OS X 上使用终端命令找到(在 Windows 上也应该类似)

      $ locate proguard-rules.txt
      

      在我的机器上输出是:

      /Applications/Android Studio.app/Contents/plugins/android/lib/templates/gradle-projects/AndroidWearModule/root/proguard-rules.txt.ftl
      /Applications/Android Studio.app/Contents/plugins/android/lib/templates/gradle-projects/NewAndroidModule/root/proguard-rules.txt.ftl
      /Applications/Android Studio.app/Contents/plugins/android/lib/templates/gradle-projects/NewAndroidTVModule/root/proguard-rules.txt.ftl
      /Applications/Android Studio.app/Contents/plugins/android/lib/templates/gradle-projects/NewGlassModule/root/proguard-rules.txt.ftl
      

      您可以通过删除 txt 之外的额外扩展名来放置此文件。这是它的样子,因此您可以创建自己的并放置在您的 android 项目中。

      # Add project specific ProGuard rules here.
      # By default, the flags in this file are appended to flags specified
      # in ${sdkDir}/tools/proguard/proguard-android.txt
      # You can edit the include path and order by changing the proguardFiles
      # directive in build.gradle.
      #
      # 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 *;
      #}
      

      【讨论】:

        【解决方案7】:

        更新 android studio 后我遇到了同样的问题,我无法将我的项目导入新版本。 在 gradle 构建文件中进行更改。

        buildTypes {
            release {
                minifyEnabled false *//change to this not runProguard false*
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多