使用最新的 Android Studio 并更新所有平台 (OsX) :
构建.gradle:
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.xxxxxxlxxxxxx.apps.firebase"
minSdkVersion 16
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:design:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
implementation 'com.firebase:firebase-jobdispatcher:0.8.5'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
Proguard-rules.pro :
-keep public class OpenSource
如您所见,混淆器已启用,并且还给出了仅保留
OpenSource
类的规则。仍然当我构建它的 apk/签名的 apk 时。并在 apk 文件上使用以下命令:
很高兴收到您的建议。谢谢。
在 Android Studio 中启用 ProGuard。以下是如何在 Android Studio 中启用默认 ProGuard 的示例。
1) 前往app
build.gradle
文件
2) 启用 proguard
minifyEnabled true
和 useProguard true
3) 启用
shrinkResources true
通过缩减资源来减小 APK 大小。
4)
proguardFiles getDefaultProguardFile('proguard-android.txt')
启用默认值。如果您想使用自己的 proguard 文件,请使用以下规则。
buildTypes {
release {
debuggable false
useProguard true
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
debuggable true
useProguard true
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
较新的 gradle 插件版本不使用 proguard。它使用 R8 编译器代替。
当您使用 Android Gradle 插件 3.4.0 构建项目时或 更高版本,插件不再使用 ProGuard 执行编译时 代码优化。相反,该插件与 R8 编译器配合使用 处理以下编译时任务:
https://developer.android.com/studio/build/shrink-code
如果你想使用 proguard(在发布版本中),请将以下内容添加到 gradle.properties
android.enableR8=false
并在 build.gradle 中使用以下内容。
buildTypes {
release {
debuggable false
useProguard true
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
如果您认为您所做的一切都是正确的(默认 proguard-rules、minifyEnabled = true 等),但类和方法没有被混淆,请检查您尝试混淆的构建变体是否不可调试(显然是可调试的)构建未正确混淆)