1. 程式人生 > >Android7.0指紋介面點選瞭解詳情 報錯問題

Android7.0指紋介面點選瞭解詳情 報錯問題

測試反饋一個問題,錄入指紋後,點選瞭解詳情 會出現停止執行。怎麼解決

抓取log資訊後發現 ,出現了空指標異常 help_url_fingerprint 這個沒有賦值

<!-- Help URL, Fingerprint [DO NOT TRANSLATE] -->
    <string name="help_url_fingerprint" translatable="false"></string>

手頭上剛好有8.1帶指紋的機器,發現8.1的沒有問題,對比程式碼之後 ,問題得以解決 ,8.1已經針對uri為空的情況做了處理

M: ALPS02884741 If uri is empty

public static CharSequence linkify(CharSequence rawText, String uri, EnforcedAdmin admin) {
            SpannableString msg = new SpannableString(rawText);
            Annotation[] spans = msg.getSpans(0, msg.length(), Annotation.class);
            /// M: ALPS02884741 If uri is empty
            if (TextUtils.isEmpty(uri)) {
                CharSequence ret = rawText;
                for (Annotation annotation : spans) {
                    int start = msg.getSpanStart(annotation);
                    int end = msg.getSpanEnd(annotation);
                    ret = TextUtils.concat(ret.subSequence(0, (start > ret.length() ? ret.length()
                            : start)), msg.subSequence(end, msg.length()));
                }
                return ret;
            } else {
                SpannableStringBuilder builder = new SpannableStringBuilder(msg);
                for (Annotation annotation : spans) {
                    final String key = annotation.getValue();
                    int start = msg.getSpanStart(annotation);
                    int end = msg.getSpanEnd(annotation);
                    LearnMoreSpan link = null;
                    if (ANNOTATION_URL.equals(key)) {
                        link = new LearnMoreSpan(uri);
                    } else if (ANNOTATION_ADMIN_DETAILS.equals(key)) {
                        link = new LearnMoreSpan(admin);
                    }
                    if (link != null) {
                        builder.setSpan(link, start, end, msg.getSpanFlags(link));
                    }
                }
                return builder;
            }
        }