【发布时间】:2016-11-02 05:49:25
【问题描述】:
我制作了一个一直运行良好的安卓应用。突然,AVG Antivirus 报告我的应用程序是恶意软件。几个小时后,我发现了问题:
在 build.gradle 中,如果我使用下面的配置生成签名的 APK,AVG 报告(APK)为恶意软件:
buildTypes {
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
但如果我评论最后一行,则没有发现威胁:
buildTypes {
release {
shrinkResources true
minifyEnabled true
//proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
我的 proguard-rules.pro 没有什么特别的:
-keepattributes Signature
-keepattributes *Annotation*
-keepattributes EnclosingMethod
-keep class io.codetail.animation.arcanimator.** { *; }
-keep class com.example.viewholders.** {
*;
}
-keep class com.android.vending.billing.**
-keep class cn.pedant.SweetAlert.Rotate3dAnimation {
public <init>(...);
}
-keepclassmembers class com.example.models.** {
*;
}
我正在使用 Android Studio 2.2.2,我的项目使用 Firebase。我的 android 设备中的 AVG Antivirus 版本是 5.9.0.1.224656。
AVG 识别的“恶意软件”是 Android/gp oi bccfdd。
有什么办法可以解决这个问题吗?
【问题讨论】:
-
从
proguard-rules.pro中删除keep class和keepclassmembers行并重新构建 -
@Apurva,我无法删除这些行,因为我的应用程序需要它们。
-
从 proguard 文件中删除这些行不会从您的包中删除这些类。
-keep class用于以原始格式保留列出的类,因此 proguard 在构建包时不会对这些类进行编码。所以从你的 proguard 文件中删除这些行是安全的,它只会以无法识别的形式对类进行编码。 -
是的,我知道,我的意思是为了避免 Firebase 数据库、Android 计费和我使用的库、SweetAlert 和另外一个库出现错误,这些行是必需的。无论如何,我尝试了你的建议,但没有用。
标签: android proguard antivirus