我最近开始研究 Android 应用程序和 Proguard 的构建风格。所以我现在正在做的是创建我的应用程序的发布版本。为此,以下是我在 build.gradle 文件的 buildTypes 中所做的更改。
buildTypes {
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt')
}
release {
minifyEnabled true
zipAlignEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.chitchatReleaseConfig
}
}
我通过引用不同地方提到的以下链接,为发布版本创建了一个 proguard-rules.pro 文件。
https://www.guardsquare.com/en/proguard/manual/examples
但是,我仍然对我的项目中除了应该包含在 proguard-rules.pro 中的一般文件之外的文件类型感到困惑。因为显然由于发布版本的原因,在我的应用程序中的某些点上,我不断收到 FileNotFoundException 并且无法调试它。
那么我如何决定我的项目中的哪些文件应该包含在我的 proguard-rules.pro 中以及如何在发布版本中调试我的应用程序中的 FileNotFoundException?
Proguard 存在某些问题,但它对于缩小 apk 大小和代码混淆非常有效。我建议如果您在应用程序中使用第三方库,请在 proguard-rules 文件中使用它们的 proguard-rules。
要从签名的 apk 中获取错误,请使用 Fabric Crashlytic。它易于集成(最多 10 分钟),并且会在结构控制台上显示完整的异常堆栈跟踪。
试试这个:
android {
signingConfigs {
SignNAME {
keyAlias 'yourKeyAliasName'
keyPassword 'yourKeyAliasPassword'
storeFile file('F:/ANDROID KEYSTORES/myKeystore.jks') // Give the Path of your Keystore here
storePassword 'yourStorePassword'
}
}
compileSdkVersion 24 // change depending upon your requirement
buildToolsVersion "24.0.3" // change depending upon your requirement
defaultConfig {
applicationId "com.yourPackageName.yourAppName"
minSdkVersion 18 // change depending upon your requirement
targetSdkVersion 24 // change depending upon your requirement
versionCode 1 // change depending upon your requirement
versionName "1.0" // change depending upon your requirement
multiDexEnabled true
signingConfig signingConfigs.SignNAME
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
}
此后,在左下角上方的Android Studio中,您将找到
Build Variants
。单击它并将 Build Variants
从 debug
更改为 release
。等待 gradle 构建。您已准备就绪 Run
。
Fabric Crashlytic 是最好的。我正在使用它并且能够跟踪发布版本中的崩溃。