บางครั้ง Tink จะสร้างข้อความแสดงข้อผิดพลาด เช่น
No wrapper registered for type
No manager for type T has been registered
Unable to get primitive interface P for key of type T
หน้านี้จะช่วยแก้ไขปัญหาดังกล่าว
กรณีที่ 1: ข้อผิดพลาดติดดาวว่า "ไม่พบ Wrapper" หรือใกล้เคียง
คุณกำลังเรียกใช้ GetPrimitive()
เพื่อรับประเภทพื้นฐานที่ยังไม่ได้ลงทะเบียน ซึ่งโดยทั่วไปจะแก้ไขได้ด้วยการเรียกใช้ TinkConfig.register()
ในไบนารีก่อนหน้านี้ การลงทะเบียนเพียงครั้งเดียวก็เพียงพอและสามารถทำได้เมื่อเริ่มต้น
ประเภทพื้นฐานบางอย่างจำเป็นต้องมีการลงทะเบียนแบบพิเศษมากขึ้น
KeysetDeriver
ต้องใช้KeyDerivationConfig.register()
JwtMac
ต้องใช้JwtMacConfig.register()
JwtPublicKeySign
และJwtPublicKeyVerify
ต้องใช้JwtSignatureConfig.register()
กรณีที่ 2: ข้อผิดพลาดแสดงประเภทคีย์และค่าพื้นฐาน
เช่น ข้อผิดพลาดอาจระบุว่า Unable to get primitive interface P for key
of type T
ในค่าที่เจาะจงของ P และ T
ในกรณีนี้ Tink จะไม่สามารถสร้างค่าพื้นฐานแบบพื้นฐานที่คุณระบุสำหรับชุดคีย์ที่คุณมี ปัญหานี้มักเกิดขึ้นเนื่องจากคุณมีชุดคีย์สำหรับผิดประเภท ตัวอย่างเช่น คุณอาจขอใช้ Mac แต่คีย์เซ็ตมีไว้สำหรับ Aead
กรณีหนึ่งที่พบบ่อยคือผู้ใช้พยายามรับคีย์สาธารณะพื้นฐานจากชุดคีย์ที่มีคีย์ส่วนตัว หากต้องการดูว่าปัญหาเกิดจากสาเหตุนี้หรือไม่ ให้ลองโทรหา GetPrimitive()
ที่ผลลัพธ์ของ GetPublicKeysetHandle()
แทน
หากไม่ได้ผล คุณสามารถดูรายการประเภทคีย์ล่าสุดได้ที่นี่ในการทดสอบข้ามภาษา คุณควรตรวจสอบว่ามีการแสดงค่า P แบบพื้นฐาน พร้อมกับคีย์ประเภท T หรือไม่
หากค่าพื้นฐานปรากฏพร้อมประเภทคีย์ที่เกี่ยวข้อง อาจเป็นไปได้ว่าการใช้ Tink ของภาษาของคุณไม่รองรับคีย์ประเภท T ตรวจสอบรายการประเภทคีย์เพื่อดูว่า Tink รองรับประเภทคีย์ในภาษาของคุณหรือไม่