Android 8.1上的AutofillManager WebView输入崩溃

时间:2018-08-08 13:12:59

标签: java android webview android-8.1-oreo android-autofill-manager

当我关注任何输入时,我会遇到自动填充管理器的错误-它会引发异常:

W/System.err: java.lang.NullPointerException: activityToken
W/System.err: at android.os.Parcel.readException(Parcel.java:2011)
W/System.err: at android.os.Parcel.readException(Parcel.java:1951)
 at android.view.autofill.IAutoFillManager$Stub$Proxy.startSession(IAutoFillManager.java:397)
 at android.view.autofill.AutofillManager.startSessionLocked(AutofillManager.java:1012) W/System.err: at android.view.autofill.AutofillManager.notifyViewEntered(AutofillManager.java:734) android.view.autofill.AutofillManager.notifyViewEntered(AutofillManager.java:706)

我能够通过在bases活动onCreate()中添加下一个代码来修复它:

public static void preventViewAutoFill(@NonNull Window window) {
    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) {
        final Method method;
        try {
            method = View.class.getMethod(AUTO_FILL_MANAGER_METHOD, Integer.TYPE);
        } catch (Exception ignore) {
            return;
        }
        if (method != null) {
            try {
                method.invoke(window.getDecorView(), IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS);
            } catch (Exception ignore) {
            }
        }
    }
}

除了WebView内的输入之外,所有视图均已解决此问题。 当用户将焦点放在WebView应用程序崩溃内的任何输入上时,我就有一个带输入字段的WebView。

有什么办法可以在应用程序层或WebView端解决此问题?

针对25个API的应用程序,至少16个。

0 个答案:

没有答案