पहले से मालूम समस्याएं

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 या इससे पहले के वर्शन पर रिज़ॉल्व करता है. इस समस्या को हल करने के लिए, अपनी Gradle डिपेंडेंसी में kotlinx-coroutines-android को 1.11.0 या इसके बाद के वर्शन पर पिन करें. हम अगली रिलीज़ में इस समस्या को ठीक कर देंगे.
  • 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 में, Pixel के अलावा अन्य डिवाइसों पर checkStatus() को कॉल करने पर, अनहैंडल किया गया GenAiException दिखता है. इसके बाद के वर्शन का इस्तेमाल करें (com.google.mlkit:genai-prompt:1.0.0-beta4 या इसके बाद का वर्शन).
  • बंडल किए गए Language ID के लिए, एजीपी 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 की वैल्यू शून्य नहीं है, तो "अमान्य रोटेशन" की गड़बड़ी होती है. यह गड़बड़ी, com.google.mlkit:face-detection:16.0.5 और com.google.android.gms:play-services-mlkit-barcode-scanning:16.1.4 से FaceDetection API के लिए MlKitException की वजह से होती है. कृपया पुराने वर्शन का इस्तेमाल करें और हमारी अगली रिलीज़ का इंतज़ार करें. इसमें इस समस्या को ठीक कर दिया जाएगा.
  • com.google.mlkit:barcode-scanning:16.1.0 और com.google.android.gms:play-services-mlkit-barcode-scanning:16.1.3 से पहले के BarcodeScanning SDK टूल, 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>;
    }

  • टेक्स्ट की पहचान करने, इमेज को लेबल करने, और ऑब्जेक्ट का पता लगाने की सुविधा और उसे ट्रैक करने वाले एपीआई के लिए, CameraX और Camera2 की परफ़ॉर्मेंस अब भी Camera1 के बराबर नहीं है. इसकी वजह यह है कि CameraX और Camera2 से इमेज के फ़ॉर्मैट को बदलने में ज़्यादा समय लगता है.

  • Task कॉलबैक, उस ऐक्टिविटी या फ़्रैगमेंट के बंद होने के बाद भी लागू हो सकते हैं जिसमें उन्हें रजिस्टर किया गया है. अगर कॉलबैक, इस बीच बंद किए गए डिटेक्टर को ऐक्सेस करने की कोशिश करता है, तो इससे गड़बड़ी हो सकती है. अगर किसी ऐक्टिविटी में ML Kit का इस्तेमाल किया जा रहा है, तो ऐक्टिविटी के दायरे में आने वाले लिसनर को रजिस्टर किया जा सकता है. ऐक्टिविटी बंद होने पर, यह लिसनर अपने-आप हट जाता है. अगर किसी फ़्रैगमेंट या अन्य एनवायरमेंट में ML Kit का इस्तेमाल किया जा रहा है, तो आपके पास कस्टम एक्ज़ीक्यूटर उपलब्ध कराने का विकल्प होता है. यह एक्ज़ीक्यूटर, फ़्रैगमेंट के खत्म होने पर एक्ज़ीक्यूशन को बंद कर देता है. उदाहरण के लिए, Vision Quickstart में ScopedExecutor.Java देखें.

  • बिट मैप के अलावा अन्य इमेज फ़ॉर्मैट के साथ इमेज लेबल करने के लिए, बंडल किए गए वैरिएंट की परफ़ॉर्मेंस, Google Play Services पर निर्भर "थिन" वैरिएंट से बेहतर होती है.

  • डिजिटल इंक 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 से जुड़ी समस्याएं

  • M1 पर आधारित Mac पर सिम्युलेटर काम नहीं करते.
  • X86_64 सिम्युलेटर, अनुवाद की सुविधा के 'GoogleMLKit/Translate', '4.0.0' या इसके बाद के वर्शन और स्मार्ट जवाब की सुविधा के 'GoogleMLKit/SmartReply', '4.0.0' या इसके बाद के वर्शन पर काम नहीं करता.