मैंने हाल ही में com.google.android.gms:play-services 9.2.0 में अपडेट किया है और मैं नई क्रोमकास्ट लाइब्रेरी और फायरबेस एनालिटिक्स का उपयोग करने का प्रयास कर रहा हूं, लेकिन मुझे त्रुटि मिल रही है "com.google.android.gms.internal.zzsj$zza : कोई स्वीकार्य मॉड्यूल नहीं मिला। स्थानीय संस्करण 0 है और दूरस्थ संस्करण 0 है।" com.google.android.gms.cast.framework.CastContext.(Unknown Source) पर क्रिएट विधि पर गतिविधि में। कोई विचार अगर यह कास्ट कार्यक्षमता के कारण अनुकरणकर्ताओं के साथ काम नहीं कर रहा है या यदि यह एक संस्करण समस्या है? मैं जिन अनुकरणकर्ताओं के साथ परीक्षण कर रहा हूं वे 5.0 और 5.1 चल रहे हैं।

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    FirebaseAnalytics mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
    setupCastListener();
    mCastContext = CastContext.getSharedInstance(this);
    mCastSession = mCastContext.getSessionManager().getCurrentCastSession();
    mCastContext.getSessionManager().addSessionManagerListener(mSessionManagerListener, CastSession.class);
    mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
}

धन्यवाद

10
Jaz 7 जुलाई 2016, 20:40
मुझे त्रुटि संदेश मिला कि "कोई स्वीकार्य मॉड्यूल नहीं मिला। स्थानीय संस्करण 0 है और दूरस्थ संस्करण 0 है", मैं रन-टाइम अनुमति और समस्या हल करता हूं।
 – 
varotariya vajsi
4 फरवरी 2018, 13:29

3 जवाब

सबसे बढ़िया उत्तर

आपके एमुलेटर पर Play Services का संस्करण 9.2.0 का समर्थन नहीं करता है। इस समय, मुझे नहीं लगता कि कोई भी एमुलेटर इमेज 9.2.0 का समर्थन करता है। आपके विकल्प 9.0.2 पर डाउनग्रेड करना है, या एक वास्तविक डिवाइस पर चलाना है जब तक कि एक अद्यतन एमुलेटर छवि जारी नहीं हो जाती है।

यदि आप अपने लॉगकैट आउटपुट को ध्यान से देखते हैं तो आपको इस तरह एक संदेश देखना चाहिए:

W/GooglePlayServicesUtil: Google Play services out of date.  Requires 9256000 but found 9080030

आप सेटिंग/ऐप्स पर जाकर, Google Play सेवाओं को ढूंढकर, और ऐप जानकारी प्राप्त करने के लिए उस पर टैप करके, एम्यूलेटर द्वारा उपयोग किए जा रहे GPS संस्करण संख्या को देख सकते हैं।

आप GoogleApiAvalability पर कॉल करके कोड से GPS वर्शन नंबर प्राप्त कर सकते हैं। GOOGLE_PLAY_SERVICES_VERSION_CODE.

इस उत्तर में एमुलेटर संस्करणों के बारे में कुछ संबंधित जानकारी है।

असली उपकरणों के संबंध में एड्रियन क्रेतु के प्रश्नों के लिए अपडेट करें

मेरे प्रयोगों से संकेत मिलता है कि वास्तविक डिवाइस पर चलने वाले कास्ट ऐप के लिए Play सेवाओं के पुराने संस्करण का पता लगाना और रिज़ॉल्यूशन प्रोसेसिंग शुरू करना संभव है। मैंने CastVideos नमूना ऐप के साथ प्रयोग किया। मेरा समाधान सबसे अच्छा नहीं हो सकता है, लेकिन अवधारणा को प्रदर्शित करता है। मैंने एक नई गतिविधि बनाई जो लॉन्च पर चलती है और Play Services की उपलब्धता की जांच करती है। मैंने इस गतिविधि को VideoBrowserActivity के बजाय लॉन्चर गतिविधि बनाने के लिए मेनिफेस्ट को बदल दिया:

public class InitActivity extends AppCompatActivity {
    private static final String TAG = "InitActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        GoogleApiAvailability googAvail = GoogleApiAvailability.getInstance();

        int status = googAvail.isGooglePlayServicesAvailable(this);
        Log.i(TAG, "onCreate: Status= " + googAvail.getErrorString(status));

        googAvail.makeGooglePlayServicesAvailable(this)
                .addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                Log.i(TAG, "onComplete: Done");
                if (task.isSuccessful()) {
                    Log.i(TAG, "onComplete: Starting VideoBrowser");
                    startActivity(new Intent(InitActivity.this, VideoBrowserActivity.class));
                    finish();
                } else {
                    Log.e(TAG, "onComplete: RESOLUTION FAILED");
                }
            }
        });
    }
}

यदि Play सेवाएं मौजूद हैं, अद्यतित हैं, और सक्षम हैं, तो उपलब्धता की जांच करने वाला कार्य तुरंत पूरा हो जाता है और VideoBrowserActivity, मूल लॉन्च गतिविधि शुरू हो जाती है। अन्यथा, उपयोगकर्ता को यह बताते हुए एक संवाद प्रस्तुत किया जाता है कि Play सेवाओं को अपग्रेड किया जाना चाहिए, और उपयोगकर्ता द्वारा स्वीकार किए जाने के बाद, Play Store खोला जाता है और उपयोगकर्ता नवीनतम संस्करण का डाउनलोड शुरू कर सकता है।

मैं VideoBrowserActivity में वापस जाने के लिए कोई रास्ता नहीं ढूंढ पा रहा था। मुझे ऐप को पुनरारंभ करना पड़ा। अधिक काम के साथ, मुझे लगता है कि पुरानी Play सेवाओं से एक साफ वसूली संभव है। ऐप क्रैश से कम से कम कुछ बेहतर।

11
Community 20 जून 2020, 12:12
धन्यवाद क्यूबिक्स। हो सकता है कि मुझे इस संस्करण का थोड़ा सा उपयोग करके फिर से सोचना चाहिए। बहुत बुरा कलाकारों की कार्यक्षमता में काफी सुधार हुआ था।
 – 
Jaz
7 जुलाई 2016, 21:27
1
नमूने के लिए धन्यवाद। कुछ खुदाई के बाद ऐसा प्रतीत होता है कि क्रैश तब होता है जब CastContext.getSharedInstance() को कॉल किया जाता है, जिसे मैं वास्तव में एक सेवा से कॉल कर रहा हूं। आपका दृष्टिकोण, जबकि पूरी तरह से मान्य है, बिल्कुल भी डेवलपर के अनुकूल नहीं है। कास्ट v2 पूरी तरह से संपूर्ण Google API क्लाइंट बॉयलर-प्लेट की वजह से एक दर्द था: कनेक्शन प्रवाह, त्रुटियां, कॉलबैक, और उपयोगकर्ता संकल्प जैसे गतिविधियों को खोलना और परिणामों की प्रतीक्षा करना, सभी एक साधारण यूआरएल के लोडमीडिया को कॉल करने के लिए ... I अनुमान है कि कोड की उन सभी सैकड़ों पंक्तियों को हटाना और v3 पर स्विच करना एक अच्छा विचार नहीं था।
 – 
Adrian Crețu
9 जुलाई 2016, 16:57
एक महत्वपूर्ण मुद्दे की तरह लगता है जो एक अलग प्रश्न के योग्य है। हालाँकि Google का दावा है कि Play Services के अपडेट कुछ ही दिनों में फ़ोन पर भेज दिए जाते हैं, लेकिन हमेशा ऐसे मामले होंगे जहाँ कोई डिवाइस नवीनतम संस्करण नहीं रखता है।
 – 
Bob Snyder
9 जुलाई 2016, 18:07

यह क्रैश गैर-अपडेट किए गए GPS वाले वास्तविक उपकरणों पर भी होता है। मैं Google Cast SDK v3 और GPS 9.2.0 का उपयोग कर रहा हूं

मैंने कहीं भी यह उल्लेख नहीं किया कि कास्ट v3 के काम करने के लिए डिवाइस को वास्तव में GPS 9.2.0 की आवश्यकता है। ऐप के स्टार्टअप पर क्रैश न होने का समाधान या कम से कम एक समाधान क्या है?

1
Adrian Crețu 8 जुलाई 2016, 21:48
मुझे लगता है कि उपयोगकर्ताओं के लिए नई अपग्रेड प्ले सेवाओं में अपग्रेड करने और दुर्भाग्य से त्रुटियों को संभालने का एकमात्र समाधान है।
 – 
Jaz
8 जुलाई 2016, 22:54
मैं कास्ट का उपयोग नहीं करता और इसकी निर्भरता से परिचित नहीं हूं। सामान्यतः, GoogleApiAvailability में विधियों का उपयोग करना संभव है Play सेवाओं के मौजूद नहीं होने या किसी आवश्यक संस्करण में अपडेट नहीं होने की समस्याओं को हल करने के लिए। मुझे याद है कि दस्तावेज़ीकरण में इसे कैसे करें इस पर एक गाइड है लेकिन इसे नहीं मिल रहा है। यदि आप इसकी खोज करते हैं तो आपको कुछ उदाहरण या अधिक जानकारी मिल सकती है।
 – 
Bob Snyder
8 जुलाई 2016, 23:10
- कास्ट एसडीके v3 को स्पष्ट रूप से सरलीकृत उपयोग के लिए एक सुविधा के रूप में जीपीएस क्लाइंट उपलब्धता के साथ किसी भी बातचीत की आवश्यकता नहीं है। अपवाद तब होता है जब गतिविधि भी बनाई जाती है, इसलिए ओवरराइड करने और उपलब्धता की जांच करने के लिए कोई वास्तविक हुक नहीं है; दुर्भाग्य से क्योंकि अब पर्दे के पीछे काम करने के लिए अति-सरलीकृत है, नवीनतम जीपीएस मौजूद नहीं होने पर ऐप क्रैश हो जाता है। एक फीचर से ज्यादा मेरे लिए एक बग जैसा दिखता है।
 – 
Adrian Crețu
9 जुलाई 2016, 02:30
मैंने आपकी टिप्पणियों के जवाब में अपना उत्तर अपडेट कर दिया है। मुझे आशा है कि मेरे प्रयोग कास्ट एसडीके v3 के साथ थे। मैं अब इसकी जांच करूंगा।
 – 
Bob Snyder
9 जुलाई 2016, 07:51

जब मैंने google play डेवलपर सेवा ऐप्लिकेशन, मैं इसे हल करने में सक्षम था।

0
ugh StackExchange 29 जिंदा 2018, 09:02
यह एक टिप्पणी की तरह दिखता है और उत्तर नहीं।
 – 
Sunil
29 जिंदा 2018, 07:19