gpt4 book ai didi

安卓 : Override a certain class in a library dependency

转载 作者:行者123 更新时间:2023-11-29 14:12:57 25 4
gpt4 key购买 nike

我在我的项目中使用人行横道作为 webview,现在我想出于某些目的覆盖替换类。

原始类

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;
}
}

现在我要做的是通过复制包名和类名来替换它。

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。但是,由于文件重复,我将无法生成签名的 APK

(org.xwalk.core.internal.SslUtil)

现在有没有一种方法可以将这个特定文件从我的依赖项中排除并使用我创建的文件?还是不可能?

最佳答案

如果您要覆盖一个类,为什么要将它与该类放在同一个包中。因为它是您个人的重写,所以将它放在您的包中。

your.own.package.here

imports....

class SslUtilNew extends SslUtil {

public static boolean shouldDenyRequest(int error) {
// Call Super if you want to otherwise use your own method
//I'll do my custom handling of error
return false;
}
}

然后当你想使用它时,用你的包导入那个。您仍然可以继续使用其他旧的类方法,并且只使用您覆盖的新方法。

关于安卓 : Override a certain class in a library dependency,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45692187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com