当前位置: 首页 > 知识库问答 >
问题:

使用proguard时执行失败

蒯嘉赐
2023-03-14
...
    buildTypes {
        debug {
            minifyEnabled true
            // Uses new built-in shrinker http://tools.android.com/tech-docs/new-build-system/built-in-shrinker
            useProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            testProguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguardTest-rules.pro'
        }

        release {
            minifyEnabled true
            useProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            testProguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguardTest-rules.pro'
        }
    }

org.gradle.execution.multipleBuildFailures:生成完成,失败1次。在org.gradle.initialization.defaultgradleauncher$executeTasks.run(Defaultgradle.internal.operations.defaultbuildoperationexecutor$runnablebuildoperationworker.execute(Defaultbuildoperationexecutor.java:301)在org.gradle.internal.operations.defaultbuildoperationexecutor$runnablebuildoperationworker.execute(Defaultbuildoperationexecutor.293)在t在com.android.builder.tasks.job.runtask(job.java:47)在com.android.build.gradle.tasks.SimpleWorkQueue$EmptyThreadContext.runtask(SimpleWorkQueue.java:41)在com.android.builder.tasks.workQueue.run(WorkQueue.java:282)...1其他

问题出在哪里?

共有1个答案

易焱
2023-03-14
 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

应用程序模块的build.gradle文件中的下面一行指示proguard的脚本需要应用到您的版本构建中。它有两个文件:

  1. 手动创建proguard-rules.pro。您需要在应用程序的根文件夹中创建此文件。
  2. proguard-rules.pro包含应用程序特定的proguard脚本。所有特定于应用程序的proguard都应该在此文件中。

例如,如果使用jjwt库,则必须将此行添加到proguard-rules.pro文件:

-keepattributes InnerClasses

-keep class io.jsonwebtoken.** { *; }
-keepnames class io.jsonwebtoken.* { *; }
-keepnames interface io.jsonwebtoken.* { *; }

-keep class org.bouncycastle.** { *; }
-keepnames class org.bouncycastle.** { *; }
-dontwarn org.bouncycastle.**
 类似资料:
  • 项目: 分级包装器: 无法解析配置“:lint-rules:debugcompileClasspath”的所有项目。无法将项目“common.jar(com.android.tools:common:26.6.3)”转换为匹配属性{artifacttype=android-classs,org.gradle.libraryelements=jar,org.gradle.usage=java-run

  • 当试图将EnumTypeAdapter与Proguard一起使用时,它会在gson.getAdapter()中导致AssertionError。此错误似乎是由于类型信息丢失...以下是所有相关源代码: 例外情况: 正在使用的EnumTypeAdapter: 如何构造GSON对象: 我的ProGuard配置: 如前所述,我怀疑由于丢失了类型信息而出现了故障--在深入研究了GSON源代码后,这是用来解

  • 和下面的一些行 我在1.7.6版本中使用了frontend-maven-plugin,并将其插入到pom.xml中。 我的karma.conf.js看起来是这样的: 我的Package.json: My Angular.json: 我使用以下版本的软件包: IDE 我做错了什么?

  • 我刚刚使用Eclipse创建了我的应用程序的可执行Jar。我总是试图帮你回答,但这次我真的不知道发生了什么。在这个项目中,我添加了一些外部类(org.java_websocket)和用于mysql连接的conj Jar。在下面的链接中,我收到了大约800行警告,但问题只是少数。为了混淆这个项目,我使用了Proguard GUI。我没有检查收缩和优化,我将应用程序的主类插入到模糊处理窗口的底部框中(

  • 无法执行目标org.apache.maven.plugins:maven-compiler-plugin:3.1:在项目gameoflife上编译(default-compile)-core:编译失败[错误]此环境中未提供编译器。也许您运行的是JRE而不是JDK? 我已经在我的机器上安装了Java,但仍然面临这个问题。 我在做EC2。

  • 添加刀柄依赖项: Build.gradle(项目) 建筑gradle(应用程序) 我还有一个全局应用类: MyApplication.kt 在我的清单中: 显示xml 现在,我创建一个模块 NetworkModule.kt 我运行代码时出错: **任务“:app:kaptDebugKotlin”的执行失败。 执行org时发生故障。喷气式飞机。科特林。格雷德尔。内部的KaptExecution ja