แก้ปัญหาข้อผิดพลาดที่พบบ่อยเกี่ยวกับเครื่องมือจัดการข้อมูลเข้าสู่ระบบ

คู่มือนี้แสดงรหัสข้อผิดพลาดและคำอธิบายที่พบบ่อยซึ่งเกี่ยวข้องกับ Credential Manager รวมถึงให้ข้อมูลบางอย่างเกี่ยวกับสาเหตุของข้อผิดพลาด

รหัสและคำอธิบายของข้อผิดพลาด สาเหตุ

android.os.TransactionTooLargeException

ปัญหานี้เกิดจากปัญหาที่ทราบซึ่ง credentialManager.getCredential() API ใน Android 14 ขึ้นไปแสดงกล่องโต้ตอบการลงชื่อเข้าใช้ไม่สำเร็จเมื่อมีบัญชี Google หลายบัญชีในอุปกรณ์ ปัญหานี้เกิดขึ้นกับ GetGoogleIdOption โดยเฉพาะ ไม่ใช่ GetSignInWithGoogleOption ปัญหานี้ได้รับการแก้ไขแล้วในบริการ Google Play เวอร์ชัน 24.40.XX ขึ้นไป

CreateCredentialCancellationException

ผู้ใช้ยกเลิกการลงทะเบียนหรือการดึงข้อมูลพาสคีย์

ผู้ใช้เลือกที่จะไม่สร้างหรือใช้ข้อมูลเข้าสู่ระบบ ตอนนี้คุณสามารถปรับ UI เพื่อเสนอวิธีการลงชื่อเข้าใช้แบบอื่น หรือไปยังขั้นตอนถัดไปในกระบวนการได้แล้ว

GetCredentialCancellationException

ระบบสิ้นสุดกระบวนการดึงข้อมูลเข้าสู่ระบบเนื่องจากไม่ได้รับสิทธิ์ของผู้ใช้ที่จำเป็น แม้ว่าปัญหานี้มักจะเกิดขึ้นเมื่อผู้ใช้ยกเลิกขั้นตอนการลงชื่อเข้าใช้ด้วยตนเอง แต่ก็อาจเป็นสัญญาณว่าคำขอไม่ได้รับอนุญาตเนื่องจากข้อจำกัดทางเทคนิคด้วย เนื่องจากข้อผิดพลาดนี้บ่งบอกว่าไม่มีความยินยอม จึงไม่ควรลองส่งคำขออีกครั้งโดยอัตโนมัติ เพราะจะทำให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ไม่ดี อย่างไรก็ตาม นักพัฒนาแอปควรตรวจสอบความถี่ของข้อยกเว้นนี้ ปริมาณ "การยกเลิก" ที่สูงอาจบ่งชี้ถึงการกำหนดค่าที่ไม่ถูกต้อง เช่น ขอบเขตที่ขาดหายไปหรือไม่ถูกต้อง ซึ่งทำให้ UI การให้สิทธิ์ดำเนินการไม่สำเร็จ หากพบแนวโน้มที่ไม่คาดคิด ให้ตรวจสอบพารามิเตอร์คำขอและการกำหนดค่า [relying party][2]

หมายเหตุ: ข้อความแสดงข้อผิดพลาดอาจแตกต่างกันไปตามประเภทของข้อมูลเข้าสู่ระบบ

  • สำหรับพาสคีย์ ข้อความแสดงข้อผิดพลาดอาจเป็น "ผู้ใช้ยกเลิกการลงทะเบียนหรือการเรียกข้อมูลพาสคีย์"
  • สำหรับฟีเจอร์ลงชื่อเข้าใช้ด้วย Google ข้อความแสดงข้อผิดพลาดอาจเป็น "ผู้ใช้ยกเลิกกิจกรรม"

CreateCredentialCustomException หรือ GetCredentialCustomException

เมื่อใช้ SDK ของบุคคลที่สามเพื่อเรียก API ด้วยออบเจ็กต์คำขอที่คลาสย่อย CreateCustomCredentialRequest หรือ GetCustomCredentialOption คุณอาจพบข้อผิดพลาด หากเกิดกรณีนี้ ให้ตรวจสอบ SDK เพื่อหาค่าคงที่ประเภทข้อยกเว้นที่กำหนดเองซึ่งตรงกับ e.type หากไม่พบรายการที่ตรงกัน คุณจะทิ้งหรือบันทึกข้อยกเว้นก็ได้

CreateCredentialInterruptedException หรือ GetCredentialInterruptedException

การดำเนินการอาจถูกขัดจังหวะเนื่องจากผู้ใช้ไปที่การตั้งค่าเพื่อกำหนดค่าเครื่องมือจัดการรหัสผ่านใหม่ นอกจากนี้ อาจมีสาเหตุอื่นๆ ที่ทำให้เกิดการหยุดชะงักด้วย โปรดลองโทรอีกครั้ง

CreateCredentialUnknownException

ในระหว่างการบันทึกรหัสผ่าน พบการตอบกลับว่าบันทึกรหัสผ่านไม่สำเร็จจากการแตะครั้งเดียว 16: [28431] ข้ามการบันทึกรหัสผ่านเนื่องจากระบบน่าจะแจ้งให้ผู้ใช้ใช้การป้อนข้อความอัตโนมัติของ Android

ข้อผิดพลาดนี้จะส่งผลต่อ Android 13 และเวอร์ชันก่อนหน้าเท่านั้นเมื่อ Google เป็นผู้ให้บริการป้อนข้อความอัตโนมัติที่กำหนด ในกรณีดังกล่าว ผู้ใช้จะได้รับข้อความแจ้งให้บันทึกจากการป้อนข้อความอัตโนมัติ และระบบจะจัดเก็บรหัสผ่านไว้ในเครื่องมือจัดการรหัสผ่านบน Google สิ่งสำคัญคือข้อมูลเข้าสู่ระบบที่บันทึกไว้โดยใช้การป้อนข้อความอัตโนมัติด้วย Google จะซิงค์แบบ 2 ทางกับ Credential Manager API ดังนั้นคุณจึงไม่ต้องสนใจข้อผิดพลาดนี้

CreatePublicKeyCredentialDomException และ GetPublicKeyCredentialDomException

มีแนวโน้มว่าข้อยกเว้น DOM จะมี domError ที่เจาะจงมากขึ้น คุณสามารถแมปกับ DomException ของ WebAuthn เพื่อดูรายละเอียดเพิ่มเติมได้

CreatePublicKeyCredentialDomException และ GetPublicKeyCredentialDomException

ตรวจสอบคำขอขาเข้าไม่ได้

เซิร์ฟเวอร์ของเครื่องมือจัดการรหัสผ่านไม่รู้จักรหัสแพ็กเกจของแอป ซึ่งชี้ให้เห็นถึงปัญหาที่อาจเกิดขึ้นกับการผสานรวมฝั่งเซิร์ฟเวอร์ โดยเฉพาะการตั้งค่าลิงก์ชิ้นงานดิจิทัล ตรวจสอบความถูกต้องของรหัสแพ็กเกจและ SHA ในไฟล์ลิงก์เนื้อหาอีกครั้ง

CreatePublicKeyCredentialDomException:

สร้างคีย์ระหว่างการลงทะเบียนไม่ได้

ปัญหานี้อาจเกิดขึ้นเมื่อผู้ใช้ปิดกล่องโต้ตอบการล็อกหน้าจอระหว่างการลงทะเบียน

CreateCredentialNoCreateOptionException

ข้อยกเว้นนี้ระบุว่าผู้ใช้ไม่ได้กำหนดค่าเครื่องมือจัดการรหัสผ่านที่ถูกต้อง ข้อผิดพลาดนี้ไม่ได้เกิดจากโฟลว์การยกเลิกด้วยตนเองที่ผู้ใช้เริ่ม แต่เป็นความล้มเหลวที่แยกต่างหาก

CreatePublicKeyDomException และ GetPublicKeyCredentialDomException

ผู้ใช้ยกเลิกการลงทะเบียนพาสคีย์

ผู้ใช้ยกเลิกการดึงข้อมูลพาสคีย์

ปัญหานี้อาจเกิดขึ้นเมื่อผู้ใช้ปิดกล่องโต้ตอบลายนิ้วมือระหว่างการลงทะเบียน / การเรียกพาสคีย์

GetCredentialProviderConfigurationException และ CreateCredentialProviderConfigurationException

ไม่พบการอ้างอิงผู้ให้บริการสำหรับ getCredentialAsync

ไม่พบการอ้างอิงผู้ให้บริการสำหรับ createCredentialAsync

ไม่มีทรัพยากร Dependency ของ androidx.credentials:credentials-play-services-auth:<latest-version>

GetCredentialUnsupportedException หรือ CreateCredentialUnsupportedException

อุปกรณ์ของคุณไม่รองรับเครื่องมือจัดการข้อมูลเข้าสู่ระบบ

ตรวจสอบว่าได้อัปเดตไลบรารีข้อมูลเข้าสู่ระบบเป็นเวอร์ชัน 1.2.1 ขึ้นไปแล้ว

GetPublicKeyCredentialException

ถอดรหัสข้อมูลเข้าสู่ระบบไม่สำเร็จ

ปัญหานี้เกิดขึ้นเมื่อพยายามใช้พาสคีย์หลังจากออกจากระบบและกลับเข้าสู่ระบบบัญชี Google แจ้งให้ผู้ใช้ลงชื่อเข้าใช้บัญชี Google ในอุปกรณ์อีกครั้ง

NoCreateOptionException

ข้อยกเว้นนี้เป็นลักษณะการทำงานที่คาดไว้เมื่อผู้ใช้ไม่ได้ตั้งค่าข้อมูลเข้าสู่ระบบพาสคีย์ในอุปกรณ์ หรือหากไม่ได้กำหนดค่าเครื่องมือจัดการรหัสผ่าน

NoCredentialException

ไม่พบข้อมูลเข้าสู่ระบบที่ตรงกัน

ข้อยกเว้นนี้จะเกิดขึ้นในสถานการณ์ต่อไปนี้

  • setFilterByAuthorizedAccounts ตั้งค่าเป็น "จริง" โดยไม่มีบัญชีที่ได้รับอนุญาตในอุปกรณ์
  • ไม่มีบัญชีที่ลงชื่อเข้าใช้ในอุปกรณ์ (ไม่ได้เพิ่มบัญชีหรือต้องมีการตรวจสอบสิทธิ์บัญชีอีกครั้ง)
  • UI ของ BottomSheet จะไม่ปรากฏหากปิดใช้ข้อความแจ้งให้ลงชื่อเข้าใช้สำหรับบัญชีใดก็ตามในอุปกรณ์ การตั้งค่าส่วนกลางนี้อยู่ในส่วนการตั้งค่าบัญชี Google > ลงชื่อเข้าใช้ด้วย Google และต้องเปิดใช้เพื่อให้ UI ของ BottomSheet แสดงสำหรับบัญชี ซึ่งจะไม่ส่งผลต่อขั้นตอนการทำงานของปุ่ม

สร้างพาสคีย์ไม่ได้เนื่องจากข้อมูลที่เข้ารหัสถูกล็อก

ผู้ใช้ต้องรีเซ็ตข้อมูลฝั่งเซิร์ฟเวอร์ของ Chrome ข้อมูลนี้รวมถึงบุ๊กมาร์กและการตั้งค่า Chrome นอกเหนือไปจากรหัสผ่านและพาสคีย์ที่บันทึกไว้ ดูรายละเอียดเพิ่มเติมเกี่ยวกับข้อมูลที่ Chrome จัดเก็บได้ที่ข้อมูล Chrome ในบัญชีของคุณ

  1. ไปที่ chrome.google.com/sync
  2. เลือกล้างข้อมูลที่ด้านล่าง
  3. ในอุปกรณ์ ให้เปิดการซิงค์ใน Chrome

เมื่อเริ่มลงชื่อเข้าใช้ไม่สำเร็จ: 8: ข้อผิดพลาดภายในที่ไม่รู้จัก

อาจตั้งค่าอุปกรณ์กับบัญชี Google ไม่ถูกต้อง อาจมีปัญหาเกี่ยวกับวิธีสร้าง JSON ของพาสคีย์ โปรดตรวจสอบความถูกต้องของการติดตั้งใช้งานอีกครั้ง

รับบัญชีซิงค์ไม่ได้

บริการ Google Play เวอร์ชัน 24.40.XX ขึ้นไปจะมีรหัสข้อผิดพลาดที่ให้ข้อมูลมากขึ้น เช่น แทนที่จะได้รับข้อความ "รับบัญชีซิงค์ไม่ได้" ตอนนี้ผู้โทรจะได้รับข้อความแสดงข้อผิดพลาดในการยกเลิกแทน