我在我的项目中使用人行横道作为webview,现在我想为某些目的重写替换类。Android:覆盖库依赖项中的某个类
原班
org.xwalk.core.internal
imports....
class SslUtil {
public static boolean shouldDenyRequest(int error) {
switch(error) {
case NetError.ERR_CERT_COMMON_NAME_INVALID:
case NetError.ERR_CERT_DATE_INVALID:
case NetError.ERR_CERT_AUTHORITY_INVALID:
case NetError.ERR_CERT_WEAK_SIGNATURE_ALGORITHM:
case NetError.ERR_CERT_WEAK_KEY:
case NetError.ERR_CERT_NAME_CONSTRAINT_VIOLATION:
case NetError.ERR_CERT_VALIDITY_TOO_LONG:
case NetError.ERR_CERT_CONTAINS_ERRORS:
case NetError.ERR_CERT_REVOKED:
case NetError.ERR_CERT_INVALID:
case NetError.ERR_SSL_WEAK_SERVER_EPHEMERAL_DH_KEY:
case NetError.ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN:
return true;
default:
break;
}
return false;
}
}
现在我想做的是通过复制包名和CLASSE南来取代它。
org.xwalk.core.internal
imports....
class SslUtil {
public static boolean shouldDenyRequest(int error) {
//I'll do my custom handling of error
return false;
}
}
这是可能的,当我刚刚与Android Studio中运行,因为IDE问我什么SslUtil我应该使用。不过,我将无法生成,因为重复的文件
(org.xwalk.core.internal.SslUtil)
现在是有办法,其中我可以排除这种的签署APK某些文件来自我的依赖并使用我创建的文件?或者是不可能的?
将这个类从编译库中剥离出来的缺点,我认为你在这里没有多少选择。顺便说一句,请注意,如果您的计划是放松SSL验证(以便无效连接有效),则您的应用可能无法在Play商店和其他应用分发渠道上发布。 – CommonsWare
@CommonsWare是的,我意识到这一点,我只是想尝试一下。关于SSL验证我已经使用API> = 24(android:networkSecurityConfig)修复了它,但是它具有API <= 23的问题,因为android:networkSecurityConfig是在API 24中引入的。 谢谢! – Aaron