识别 Android 应用程序的发布版本中的错误
Identifying errors in Release build of Android application
我最近开始研究 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
}
}
我通过参考以下在不同地方提到的 link 为发布版本创建了一个 proguard-rules.pro 文件。
https://www.guardsquare.com/en/proguard/manual/examples
但是,除了我实际应该包含在混淆器中的一般文件外,我仍然对我的项目中的哪些类型的文件感到困惑-rules.pro。因为显然由于发布版本,在我的应用程序的某些点,我不断收到 FileNotFoundException 并且我无法调试它。
那么我如何决定我的项目中的哪些文件应该包含在我的 proguard-rules.pro 中以及我如何在发布版本中调试我的应用程序中的 FileNotFoundException?
试试这个:
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
.
Proguard 有一些问题,但它非常适合缩小 apk 的大小。我会建议,如果你在你的应用程序中使用第三方库,那么在 proguard-rules 文件中也使用他们的 proguard-rules。
要从签名的 apk 中获取错误,请使用 Fabric Crashlytic。它易于集成(最多 10 分钟),并且会在您的结构控制台上显示完整的异常堆栈跟踪。
Fabric Crashlytic 将是最好的。我正在使用它并且能够明智地跟踪发布版本中的崩溃。
我最近开始研究 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
}
}
我通过参考以下在不同地方提到的 link 为发布版本创建了一个 proguard-rules.pro 文件。
https://www.guardsquare.com/en/proguard/manual/examples
但是,除了我实际应该包含在混淆器中的一般文件外,我仍然对我的项目中的哪些类型的文件感到困惑-rules.pro。因为显然由于发布版本,在我的应用程序的某些点,我不断收到 FileNotFoundException 并且我无法调试它。
那么我如何决定我的项目中的哪些文件应该包含在我的 proguard-rules.pro 中以及我如何在发布版本中调试我的应用程序中的 FileNotFoundException?
试试这个:
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
.
Proguard 有一些问题,但它非常适合缩小 apk 的大小。我会建议,如果你在你的应用程序中使用第三方库,那么在 proguard-rules 文件中也使用他们的 proguard-rules。
要从签名的 apk 中获取错误,请使用 Fabric Crashlytic。它易于集成(最多 10 分钟),并且会在您的结构控制台上显示完整的异常堆栈跟踪。
Fabric Crashlytic 将是最好的。我正在使用它并且能够明智地跟踪发布版本中的崩溃。