gpt4 book ai didi

android - 任务 ':app:transformClassesAndResourcesWithProguardForRelease' Android 执行失败

转载 作者:行者123 更新时间:2023-11-30 00:48:32 26 4
gpt4 key购买 nike

我正在 Android 中构建一个应用程序,这是 build.gradle 文件:

apply plugin: 'com.android.application'

android {
compileSdkVersion 25
buildToolsVersion "25.0.1"
defaultConfig {
applicationId "myApp"
minSdkVersion 21
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'
}
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile project(':geth')
compile 'com.android.volley:volley:1.0.0'
compile 'com.google.android.gms:play-services-maps:10.0.1'
compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.android.support:support-v4:25.1.0'
compile 'com.android.support:design:25.1.0'
compile 'com.android.support:multidex:1.0.1'
compile 'org.web3j:core-android:1.1.0'
testCompile 'junit:junit:4.12'
}

当我尝试构建我的应用程序时,我收到以下导致构建失败的警告:

http://pastebin.com/EhMr66Yg

我应该为这些警告添加 -dontwarn 规则吗?是什么原因造成的?

构建失败是因为 67 条警告还是因为最后一条警告:

“有 1 个 Unresolved 对库类成员的引用。 您可能需要更新库版本。”

谢谢。

最佳答案

问题在于 Proguard 的链接问题。ProGuard 优化了字节码,去除了未使用的代码指令,并用短名称混淆了剩余的类、字段和方法。混淆代码使您的 APK 难以进行逆向工程,这在您的应用使用安全敏感功能时尤为重要

有关混淆器的更多信息,请看这里: https://developer.android.com/studio/build/shrink-code.html

build.gradle 中使用的每个库的 proguard 特定规则应放置在“proguard-rules.pro”文件中,如屏幕截图所示。

enter image description here

注意:proguard 文件可以更改。

来到要写的规则。

-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class com.actionbarsherlock.** { *; }
-keep interface com.actionbarsherlock.** { *; }
-keep class com.android.volley.** { *; }
-keep interface com.android.volley.** { *; }
-keep class org.apache.commons.logging.**
-keepattributes *Annotation*

-dontwarn org.apache.**

-keepattributes Annotation,EnclosingMethod,Signature
-keepnames class com.fasterxml.jackson.* { ; }
-dontwarn com.fasterxml.jackson.databind.
-keep class org.codehaus.* { ; }
-keepclassmembers public final enum org.codehaus.jackson.annotate.JsonAutoDetect$Visibility {
public static final org.codehaus.jackson.annotate.JsonAutoDetect$Visibility *; }
-keep public class your.class.* {
public void set_(_);
public ** get*();
}

注意:对于进一步的库 proguard 规则,使用 https://github.com/krschultz/android-proguard-snippets

关于android - 任务 ':app:transformClassesAndResourcesWithProguardForRelease' Android 执行失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41431523/

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