生成签名APK时出现奇怪的行为,在调试版本中运行的添加行未在签名版本中运行,我真的需要一些帮助。
apply plugin: 'com.android.application'
android {
compileSdkVersion 20
buildToolsVersion "23.0.3"
defaultConfig {
minSdkVersion 14
targetSdkVersion 20
versionCode 94
versionName "2.4.40"
}
buildTypes {
release {
minifyEnabled false
}
}
applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFile = new File(
output.outputFile.parent,
"Build -${variant.versionName}.apk")
}
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
}
}
dependencies {
compile fileTree(dir: 'libs')
compile project(':SalesforceSDK')
compile 'com.google.code.gson:gson:2.2.4'
compile 'org.roboguice:roboguice:2.0'
compile 'com.android.support:support-v4:20.+'
compile ('ch.acra:acra:4.5.0'){
exclude group: 'org.json'
}
}
我在服务中添加了几行,以测试值是否正确,但我能看到的是我添加的行根本没有运行。我修改了一条有效的日志行。
我更新的代码
protected <T extends ResponseItem> void functionName(BaseResponse<T> response, Uri uri) {
Log.d(TAG, "saveOrUpdate"); // did not run
.
.
.
Log.v(getClass().getName(), "Processed one row. 1"); showed correctly with added "1"
.
.
.
}
答案 0 :(得分:0)
这是因为您的ProGuard设置正在删除所有&#34; Log&#34; &#34;发布&#34;的功能你的版本的版本。
您应该检查您的ProGuard文件,看看您是否找到了类似于以下内容的内容:
-assumenosideeffects class android.util.Log {
public static boolean isLoggable(java.lang.String, int);
public static int v(...);
public static int i(...);
public static int w(...);
public static int d(...);
public static int e(...);
}
注意:请记住,您不应该在已签名的APK上发布日志输出,例如Google Play商店。