ปัญหาที่ทราบ

ปัญหาเกี่ยวกับ Android

  • ใน com.google.mlkit:genai-prompt:1.0.0-beta3 และ com.google.mlkit:genai-prompt:1.0.0-beta4 การเรียกใช้ download() จะแสดง java.lang.NoSuchMethodError เมื่อการดาวน์โหลดโมเดลเสร็จสมบูรณ์หรือถูกยกเลิก หากแอปแก้ไข kotlinx-coroutines เป็น 1.10.x หรือเวอร์ชันก่อนหน้า วิธีแก้ปัญหาเฉพาะหน้าคือให้ปักหมุด kotlinx-coroutines-android เป็น 1.11.0 หรือใหม่กว่าอย่างชัดเจนในการขึ้นต่อกันของ Gradle จนกว่าเราจะแก้ไขในรุ่นถัดไป
  • ใน com.google.mlkit:genai-prompt:1.0.0-beta3 และ com.google.mlkit:genai-prompt:1.0.0-beta4 การเรียกใช้การอนุมานด้วยการแคชคำนำหน้าจะล้มเหลวในโมเดล nano-v4 เมื่อตั้งค่า ModelConfig เป็น ModelPreference.FAST วิธีแก้ปัญหาชั่วคราวคือให้ละเว้นการตั้งค่า ModelConfig เพื่อใช้การกำหนดค่าเริ่มต้น จนกว่าเราจะแก้ไขในรุ่นถัดไป
  • ใน com.google.mlkit:genai-prompt:1.0.0-beta3 การเรียกใช้ checkStatus() ในอุปกรณ์ที่ไม่ใช่ Pixel จะทำให้เกิด GenAiException ที่ไม่ได้รับการจัดการ ใช้เวอร์ชันที่ใหม่กว่า (com.google.mlkit:genai-prompt:1.0.0-beta4 ขึ้นไป)
  • สำหรับรหัสภาษาที่รวมมาด้วย แอปอาจขัดข้องเมื่ออัปเกรดเป็น AGP 7.0.0 ขึ้นไป หากต้องการหลีกเลี่ยงข้อขัดข้องในเวอร์ชัน com.google.mlkit:language-id:16.1.1 หรือก่อนหน้า ให้ใส่กฎด้านล่างนี้
    -keep class com.google.mlkit.nl.languageid.internal.LanguageIdentificationJni { *; }
    หากต้องการหลีกเลี่ยงข้อขัดข้องใน com.google.mlkit:language-id:17.0.0 หรือ com.google.mlkit:language-id:17.0.1 ให้ใส่กฎด้านล่าง
    -keep class com.google.mlkit.nl.languageid.internal.ThickLanguageIdentifier { *; }
  • InputImage ที่สร้างโดยบิตแมปที่มี rotationDegrees ที่ไม่ใช่ 0 จะทำให้เกิด MlKitException "การหมุนไม่ถูกต้อง" สำหรับ FaceDetection API ตั้งแต่ com.google.mlkit:face-detection:16.0.5 และ com.google.android.gms:play-services-mlkit-barcode-scanning:16.1.4 โปรดใช้เวอร์ชันก่อนหน้าและรอการเปิดตัวครั้งถัดไปซึ่งจะมีการแก้ไขปัญหานี้
  • SDK ของ BarcodeScanning เวอร์ชันก่อน com.google.mlkit:barcode-scanning:16.1.0 และ com.google.android.gms:play-services-mlkit-barcode-scanning:16.1.3 ไม่ทำงานในอุปกรณ์บางเครื่องที่ใช้ camera-camera2:1.0.0-beta08 ขึ้นไป คุณสามารถใช้ camera-camera2 เวอร์ชันก่อนหน้าเพื่อข้ามปัญหานี้ได้ เช่น

    implementation "androidx.camera:camera-core:1.0.0-beta07"
    implementation "androidx.camera:camera-camera2:1.0.0-beta07"
    implementation "androidx.camera:camera-view:1.0.0-alpha14"
    implementation "androidx.camera:camera-extensions:1.0.0-alpha14"
    implementation "androidx.camera:camera-lifecycle:1.0.0-beta07"

  • เมธอดเนทีฟอาจถูกสร้างความสับสนโดยกฎที่กำหนดเองใน com.google.mlkit:language-id:16.1.1 หรือเวอร์ชันก่อนหน้า ใส่กฎต่อไปนี้เพื่อเก็บไว้หากพบข้อผิดพลาด เช่น java.lang.UnsatisfiedLinkError

    -keepclasseswithmembernames class com.google.mlkit.nl.languageid.internal.LanguageIdentificationJni {
      native <methods>;
    }

  • สำหรับ API การจดจำข้อความ การติดป้ายกำกับรูปภาพ และการตรวจจับออบเจ็กต์และการติดตาม ประสิทธิภาพของ CameraX และ Camera2 ยังคงไม่เทียบเท่ากับ Camera1 เนื่องจากใช้เวลาในการแปลงรูปแบบรูปภาพจาก CameraX และ Camera2 นานกว่า

  • การเรียกกลับ Task อาจทำงานหลังจากที่ Activity หรือ Fragment ที่ลงทะเบียนไว้ถูกทำลายไปแล้ว ซึ่งอาจทำให้เกิดข้อยกเว้นหาก Callback พยายามเข้าถึงตัวตรวจจับที่ปิดไปแล้วในระหว่างนั้น หากคุณใช้ ML Kit ในกิจกรรม คุณสามารถลงทะเบียนListener ที่กำหนดขอบเขตกิจกรรม ซึ่งจะถูกนำออกโดยอัตโนมัติเมื่อกิจกรรมหยุดลง หากคุณใช้ ML Kit ใน Fragment หรือสภาพแวดล้อมอื่นๆ คุณสามารถระบุ Executor ที่กำหนดเองซึ่งจะหยุดการดำเนินการเมื่อ Fragment ถูกทำลาย ดูตัวอย่าง ScopedExecutor.Java ในคู่มือเริ่มใช้งานฉบับย่อของ Vision

  • สำหรับการติดป้ายกำกับรูปภาพที่มีรูปแบบรูปภาพอื่นที่ไม่ใช่บิตแมป ตัวแปรที่รวมมาด้วยจะมีประสิทธิภาพดีกว่าตัวแปร "บาง" ที่ขึ้นอยู่กับบริการ Google Play

  • สำหรับหมึกดิจิทัล com.google.mlkit:digital-ink-recognition:17.0.0 หรือก่อนหน้า และการดึงข้อมูลเอนทิตี com.google.mlkit:entity-extraction:16.0.0-beta2 หรือก่อนหน้า คุณจะได้รับข้อยกเว้นรันไทม์ต่อไปนี้หากตั้งค่า targetSdkVersion เป็น 31 และเรียกใช้ใน Android S

    Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
    AndroidRuntime: Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
    
    ปัญหานี้ได้รับการแก้ไขแล้วในรุ่นล่าสุด

    หากต้องการใช้เวอร์ชันเก่า คุณสามารถตั้งค่า targetSdkVersion ให้น้อยกว่า 31 หรือเพิ่มรายการต่อไปนี้ลงใน build.gradle เป็นวิธีแก้ปัญหาชั่วคราว

    // For apps targeting Android S+, add the following
    constraints {
      implementation 'androidx.work:work-runtime:2.7.0-alpha04'
    }

ปัญหาเกี่ยวกับ iOS

  • ระบบไม่รองรับเครื่องจำลองบน Mac ที่ใช้ M1
  • โปรแกรมจำลอง X86_64 ไม่รองรับการแปลภาษา 'GoogleMLKit/Translate', '4.0.0' ขึ้นไปและฟีเจอร์ช่วยตอบ 'GoogleMLKit/SmartReply', '4.0.0' ขึ้นไป