Android Build Tools 25.1.6 GCM / FCM को अपडेट करने के बाद असंगत क्लिक करें


80

जब से मैंने एंड्रॉइड एसडीके टूल्स 25.1.6 और एंड्रॉइड सपोर्ट रिपॉजिटरी 32.0.0 (आज सुबह) को अपडेट किया, मुझे निम्न त्रुटि मिली, मैंने अपने कोड में कुछ भी नहीं बदला और यह अभी भी मेरे सहयोगी कंप्यूटर (एंड्रॉइड एसडीके टूल्स) पर काम कर रहा है 25.1.1 + एंड्रॉइड सपोर्ट रिपॉजिटरी 30.0.0)।

java.lang.IncompatibleClassChangeError: The method 
     'java.io.File android.support.v4.content.ContextCompat.getNoBackupFilesDir(android.content.Context)' 
     was expected to be of type virtual but instead was found to be of type direct 
     (declaration of 'java.lang.reflect.ArtMethod' appears in /system/framework/core-libart.jar)

     at com.google.android.gms.iid.zzd.zzeb(Unknown Source)
     at com.google.android.gms.iid.zzd.<init>(Unknown Source)
     at com.google.android.gms.iid.zzd.<init>(Unknown Source)
     at com.google.android.gms.iid.InstanceID.zza(Unknown Source)
     at com.google.android.gms.iid.InstanceID.getInstance(Unknown Source)
     at com.xxxxxxx.utils.RegistrationIntentService.onHandleIntent(RegistrationIntentService.java:55)
     at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
     at android.os.Handler.dispatchMessage(Handler.java:102)
     at android.os.Looper.loop(Looper.java:145)
     at android.os.HandlerThread.run(HandlerThread.java:61)

यहाँ कोड का एक टुकड़ा है जो दुर्घटनाग्रस्त होता है:

InstanceID instanceID = InstanceID.getInstance(this); // <-- crash here
String instanceIDToken = instanceID.getToken(getString(R.string.google_app_id),
GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);

यह तब होता है जब मैं Google क्लाउड मैसेजिंग से टोकन प्राप्त करने का प्रयास करता हूं।

मैं प्ले-प्ले सेवाओं के साथ ग्रैडल में GCM आयात कर रहा हूं:

 compile 'com.google.android.gms:play-services-analytics:9.0.0' 
 compile 'com.google.android.gms:play-services-maps:9.0.0'
 compile 'com.google.android.gms:play-services-location:9.0.0' 
 compile 'com.google.android.gms:play-services-gcm:9.0.0' 
 compile 'com.google.android.gms:play-services-base:9.0.0'

ईडीआईटी ने जीसीएम को निष्क्रिय करने की समस्या को ठीक कर दिया है, इसलिए मेरा अनुमान है कि मुझे फायरबेस क्लाउड मैसेज को माइग्रेट करना चाहिए

EDIT2 मेरा डिवाइस Google Play Services 9.0 (कल 8.4.x था) प्राप्त करता है। अब यह दुर्घटना नहीं करता है, लेकिन मॉड्यूल डिस्क्रिप्टर के बारे में शिकायत करता है

 Failed to load module descriptor class: Didn't find class "com.google.android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor"
 Firebase API initialization failure.

क्या किसी के पास समान त्रुटि है, और इसे कैसे ठीक किया जाए?

FIXED के लिए विशेष धन्यवाद @stegranet। ./gradlew -q app:dependencies --configuration compileएसडीके 24.x में कौन सी निर्भरताएं शामिल हैं, यह पहचानने में आपकी मदद करता है

मुख्य मुद्दा कुछ लाइब्रेरी है जो नवीनतम समर्थन लाइब्रेरी को +संस्करण के बजाय साइन का उपयोग करके आयात करती है । यह नवीनतम उपलब्ध संस्करण को शामिल करके समस्या का कारण बनता है।

तो +निर्भरता में संकेत से बचें ;)


स्पष्ट रूप से Google क्लाउड मैसेजिंग Firebase Cloud Messaging बन जाते हैं: firebase.google.com/docs/cloud-messaging सुनिश्चित नहीं है कि यह संबंधित है, फिर भी जांच कर रहा है।
--16:

मुझे लगता है कि यह एक निर्माण उपकरण मुद्दा नहीं है। इसे google play service के साथ करना है। मैं संस्करण 9.0.0 का उपयोग कर रहा हूं और अभी भी त्रुटि प्राप्त कर रहा हूं और इसके साथ ही मेरे हस्ताक्षर अवैध होने की शिकायत भी ...
अर्नोल्ड बल्लियू

आप अपने मोबाइल पर Google Play सेवाओं के संस्करण की जांच कैसे करते हैं? मैं Google Play संगीत, गेम्स आदि देखता हूं, लेकिन Play सेवाओं की तरह कुछ भी नहीं है।
bschandramohan

जवाबों:


36

मैंने अपने लिए इस त्रुटि को हल करने के लिए ग्रेडेल डिपेंडेंसी ट्री का उपयोग किया।

बस gradle -q app:dependencies --configuration compile इस तरह की प्रविष्टियों के लिए आउटपुट चलाएँ और जाँचें:

+--- com.mcxiaoke.viewpagerindicator:library:2.4.1
|    \--- com.android.support:support-v4:+ -> 24.0.0-beta1 (*)

जैसा कि डिएगो जियोर्जिनी ने कहा कि यह संस्करण बहुत अधिक है (> = 24)। तो build.gradleजैसे निर्भरता को अपडेट करें

compile('com.mcxiaoke.viewpagerindicator:library:2.4.1') {
    exclude module: 'support-v4';
}
compile 'com.android.support:support-v4:23.4.0'

मुख्य मुद्दा कुछ मॉड्यूल आयात पुस्तकालय का उपयोग कर एक +संकेत था (जैसे आपके उदाहरण में)। इसलिए ग्रेडेल में नवीनतम संस्करण शामिल है जो आउट केस में फिट नहीं होता है। धन्यवाद!
पुत्रिका

1
मुझे समझ में नहीं आता कि एंड्रॉइड कैसे फिसल सकता है> = हमारी परियोजना में 24 निर्भरताएं अगर हम सब कुछ 24 से नीचे के रूप में निर्दिष्ट कर रहे हैं। यह एक नया मुद्दा प्रतीत होता है जिसने अब मेरे ऐप के डीबग संस्करणों को ईंट कर दिया है और काफी भ्रम पैदा कर दिया है - जबकि समान कोड वाला स्टोर संस्करण ठीक लगता है
डैनियल विल्सन

पुष्टि करने के लिए धन्यवाद स्टेग्रानेट। हम इसे ठीक करने के लिए एक अपडेट जारी करते हैं। कृपया संस्करण 9.0.1 का प्रयास करें
डिएगो जियोर्जिनी

अपनी परियोजना का विश्लेषण करने के लिए Android Studio GradleView प्लगइन
जिग्नेश पटेल

मैं निम्नलिखित कोड कहां चलाऊं? "gradle -q ऐप: निर्भरताएं
अपरिपक्व

34

अद्यतन 27 हो सकता है:

हमने version 9.0.1अपने पहले संपादन में मेरे द्वारा बताई गई असंगति को ठीक करने के लिए एक अपडेट ( ) जारी किया ।
कृपया अपनी निर्भरता को अपडेट करें और हमें बताएं कि क्या यह अभी भी एक मुद्दा है।

धन्यवाद!


मूल उत्तर 20 मई:

आप जिस समस्या का सामना कर रहे हैं वह एक असंगतता के कारण है
play-services / firebase sdk v9.0.0और com.android.support:appcompat-v7 >= 24
(Android-N sdk के साथ जारी किया गया संस्करण)

आपको समर्थन लाइब्रेरी के पुराने संस्करण को लक्षित करके इसे ठीक करने में सक्षम होना चाहिए। पसंद:

compile 'com.android.support:appcompat-v7:23.4.0'

2
यह एकमात्र समाधान है जो लगता है कि काम किया है, धन्यवाद। यह थोड़ा डरावना है कि कीड़े इस तरह से उत्पादन रिलीज में फिसल सकते हैं यदि आप मुझे बुरा नहीं कहते हैं!
डैनियल विल्सन

मैंने इसे किया, अपडेट किया: - 'com.google.android.gms: play-services-gcm: 9.0.2' भी com.google.gms: google-services: 3.0.0 'संकलित करें, लेकिन यह मल्टीडेक्स त्रुटि में परिणत होता है। कोई उपाय!!
रोहित

'com.google.android.gms: play-services-gcm: 9.0.2' में अभी भी यह समस्या है
टॉम बेवेलैंडर

मेरे सभी 'प्ले-सर्विसेज' मॉड्यूल और 'com.google.gms: google-services: 3.0.0' प्रोजेक्ट बिल्ड में 9.0.2 का उपयोग करना। इसके अलावा हाल ही में जारी 24.0.0 समर्थन पुस्तकालय का उपयोग करना। मैं "संकलन 'com.google.android.gms: play-services-gcm: 9.0.2'" "compile 'com.google.firebase: firebase- संदेश: 9.0.2'
c0deblooded

9.0.1> संस्करण बदलने की कोशिश करते समय मुझे यह त्रुटि मिली> कृपया संस्करण संघर्ष को या तो Google- Services प्लगइन के संस्करण को अपडेट करके ठीक करें (नवीनतम संस्करण की जानकारी bintray.com/android/android-tools/… पर उपलब्ध है। ) या com.google.android.gms के संस्करण को 9.0.0 तक अपडेट कर रहा है। @ डिएगो जियोर्जिनी
रोजर एलियन

5

मेरा निम्नलिखित के साथ काम किया:

ऐप लेवल ग्रेडेल

dependencies {
 compile 'com.android.support:appcompat-v7:23.4.0'
 compile 'com.android.support:design:23.4.0'
 compile 'com.google.android.gms:play-services:9.0.0'
}

रूट लेवल ग्रेडेल

dependencies {
    classpath 'com.google.gms:google-services:3.0.0'
}

2
यह मेरे लिए काम करता है ... मैंने सभी संस्करणों को 24.2.1 से 23.4.0 में बदल दिया और getToken फिर से काम करता है ... यह भयानक है! अब मैं संस्करणों को अपग्रेड करने से डर रहा हूं।
EZDsIt

5

मैंने प्ले-सर्विसेज की निर्भरता को अपडेट कर दिया है build.gradle

dependencies {
    compile 'com.google.android.gms:play-services:9.0.0'
}

वर्जन संघर्ष को ठीक करने के लिए या तो गूगल-सर्विसेज प्लगइन के वर्जन को अपडेट करके - मुझे build.gradleप्रोजेक्ट के अंडर फोल्डर में गूगल-सर्विसेज को अपडेट करना था

dependencies {
    classpath 'com.google.gms:google-services:3.0.0'
}

आप Google-सेवाओं का नवीनतम अद्यतन यहाँ प्राप्त कर सकते हैं

हालांकि इसके अपवाद से परहेज नहीं है, लेकिन यह मेरे पक्ष में अब और दुर्घटनाग्रस्त नहीं है।

अपडेट करें

मैं बीटा चैनल से एंड्रॉइड स्टूडियो को अपडेट करके दुर्घटना से बच सकता था। फिर अपने platform/build-toolsएसडीके के अंदर अपडेट करें ।

यहाँ छवि विवरण दर्ज करें


धन्यवाद, मैंने 3.0.0 पर
Google-

मेरे मामले में मुझे लॉगकैट में अपवाद मिल रहा है, लेकिन अब और दुर्घटनाग्रस्त नहीं हो रहा है
रेअज़ मुर्शेड

ठीक है, आप प्रतिक्रिया के लिए धन्यवाद। क्या आप Android Build Tools 25.1.6 का उपयोग कर रहे हैं?
1916

आप सही कह रहे हैं, यह प्ले-सेवाओं के साथ काम करता है 9.0.0, लेकिन
विभाजित

मैंने इसे किया, 'com.google.android.gms: play-services-gcm: 9.0.2' को भी com.google.gms: google-services: 3.0.0 'अपडेट किया। कोई उपाय!!
रोहित

4

नवीनतम Google Play सेवाओं के संस्करण में अपडेट करने से मेरे लिए समस्या ठीक हो गई।

प्लगइन लागू करें: नीचे 'com.google.gms.google-services' ...

dependencies {
    compile 'com.google.android.gms:play-services:9.0.0'
}

https://developers.google.com/android/guides/setup#add_google_play_services_to_your_project


धन्यवाद.मैंने भी अद्यतन किया 9.0.0, लेकिन अभी भी मुद्दा है। मैं वर्तमान में विभाजित का उपयोग कर रहा हूं gms। : compile 'com.google.android.gms:play-services-analytics:9.0.0' compile 'com.google.android.gms:play-services-maps:9.0.0' compile 'com.google.android.gms:play-services-location:9.0.0' compile 'com.google.android.gms:play-services-gcm:9.0.0' compile 'com.google.android.gms:play-services-base:9.0.0'
पुत्रिक

मैंने संकलन करने की कोशिश की play-services:9.0.0, लेकिन अभी भी वही मुद्दा है।
--16 ः

मैं 'com.google.android.gms: play-services-gcm: 9.0.2' का उपयोग कर रहा हूं, लेकिन एक ही मुद्दा मिला
टॉम बेवेलैंडर


1

सभी प्ले सर्विसेज के पैकेज को शामिल करके

dependencies {
  compile 'com.google.android.gms:play-services:9.0.0'
}

आप त्रुटि को दबा देते हैं, लेकिन अंतिम परिणाम यह होता है कि GCM टोकन पुनर्प्राप्ति काम नहीं कर रही है और न ही हम GCM का एक उदाहरण प्राप्त कर सकते हैं। तो यह मेरी किताबों में हल नहीं है। अगर किसी को कुछ भी पता हो तो कृपया हमें बताएं।

संपादित करें:

मैंने GCM को फायरबेस के साथ बदल दिया, एंड्रॉइड स्टूडियो को 2.1 से 2.2 तक अपडेट किया, फायरबस एनालिटिक्स के साथ तत्काल रन समस्या को ठीक करने के लिए, 24-आरसी 4 को प्लेटफॉर्म टूल और 24-आरसी 3 को प्लेटफ़ॉर्म टूल अपडेट किया और अपने सपोर्ट लिबास के संस्करण को 23.4.0 पर रखा। लगता है अब सब कुछ अच्छा काम कर रहा है।


ऐसा लगता है कि हमें एफसीएम को लागू करना है
1916

मैंने इसे किया और मुझे अभी भी वही त्रुटि मिली है। मैंने GCM को पूरी तरह से हटा दिया और इसके आधार पर FCM को बदल दिया: Developers.google.com/cloud-messaging/android/ ... कुछ गलत है सपोर्ट लाइब्रेरी के साथ GCM या FCM पैकेज नहीं
स्टिलिनोस त्ज़ोवारस

1

मेरे पास एक ही समस्या थी और एंड्रॉइड सपोर्ट रिपॉजिटरी 32.0.0 से एंड्रॉइड सपोर्ट रिपॉजिटरी 31.0.0 तक पहुंचने से इसे हल किया गया।


3
आप एंड्रॉइड रिपॉजिटरी का समर्थन कैसे करते हैं?
प्रतिमा नूर विजया

2
खैर, एकमात्र तरीका जो मुझे मिला वह पुराने रिपॉजिटरी को नए के बजाय कॉपी करना है। रिपॉजिटरी आमतौर पर एंड्रॉइड फ़ोल्डर के अंतर्गत होती है जिसे आपका 'एसडीके प्रबंधक' इंगित करता है (यदि आपका मैक इसका उपयोग करता है तो यह संभव है कि यह पथ ~ / लाइब्रेरी / एंड्रॉइड / एसडीके / एक्स्ट्रा) है। एक्स्ट्रा फोल्डर में 'एंड्रॉइड और' गूगल 'फोल्डर को पुराने के साथ बदलें।
बोरिसके

मुझे यहाँ रेपो मिला: dl-ssl.google.com/android/repository/… , फिर इसे अनज़िप करने के लिए ../sdk/extras/android और मौजूदा m2reposity को हटाना अब तक काम करने लगा
टॉम रेडमैन

1

GCM 2016 के साथ Android पुश सूचना के लिए:

1) एंड्रॉइड में एसडीके-> एसडीके टूल्स Google Play सेवाओं की जांच करते हैं

2) निर्भरता में ढाल में सिर्फ एक पंक्ति:

compile 'com.google.android.gms:play-services-gcm:9.4.0'

(कोई विशिष्ट वर्गपथ नहीं है और यह मेरे लिए काम करता है)

3) आपको 3 वर्ग (GCMPushReceiverService, GCMRegistrationIntentService, GCMTokenRefreshListenerService) बनाना होगा

4.1) GCMTokenRefreshListenerService के लिए कोड:

package com.myapp.android;

/**
 * Created by skygirl on 02/08/2016.
 */
import android.content.Intent;
import com.google.android.gms.iid.InstanceIDListenerService;

public class GCMTokenRefreshListenerService extends InstanceIDListenerService {

    //If the token is changed registering the device again
    @Override
    public void onTokenRefresh() {
        Intent intent = new Intent(this, GCMRegistrationIntentService.class);
        startService(intent);
    }
}

4.2) GCMRegademyIntentService के लिए कोड (अपनी परियोजना संख्या के साथ अधिकृतता बदलें):

package com.myapp.android;

/**
 * Created by Skygirl on 02/08/2016.
 */
import android.app.IntentService;
import android.content.Intent;
import android.support.v4.content.LocalBroadcastManager;
import android.util.Log;

import com.google.android.gms.gcm.GoogleCloudMessaging;
import com.google.android.gms.iid.InstanceID;

public class GCMRegistrationIntentService extends IntentService {
    //Constants for success and errors
    public static final String REGISTRATION_SUCCESS = "RegistrationSuccess";
    public static final String REGISTRATION_ERROR = "RegistrationError";

    //Class constructor
    public GCMRegistrationIntentService() {
        super("");
    }


    @Override
    protected void onHandleIntent(Intent intent) {
        //Registering gcm to the device
        registerGCM();
    }

    private void registerGCM() {
        //Registration complete intent initially null
        Intent registrationComplete = null;

        //Register token is also null
        //we will get the token on successfull registration
        String token = null;
        try {
            //Creating an instanceid
            InstanceID instanceID = InstanceID.getInstance(this);
            String authorizedEntity = "XXXXXXXXXX"; //  your project number

            //Getting the token from the instance id
            token = instanceID.getToken(authorizedEntity, GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);

            //Displaying the token in the log so that we can copy it to send push notification
            //You can also extend the app by storing the token in to your server
            Log.w("GCMRegIntentService", "token:" + token);

            //on registration complete creating intent with success
            registrationComplete = new Intent(REGISTRATION_SUCCESS);

            //Putting the token to the intent
            registrationComplete.putExtra("token", token);
        } catch (Exception e) {
            //If any error occurred
            Log.w("GCMRegIntentService", "Registration error");
            registrationComplete = new Intent(REGISTRATION_ERROR);
        }

        //Sending the broadcast that registration is completed
        LocalBroadcastManager.getInstance(this).sendBroadcast(registrationComplete);
    }
}

4.3) GCMPushReceiverService के लिए कोड:

package com.myapp.android;

/**
 * Created by Skygirl on 02/08/2016.
 */
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.media.RingtoneManager;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;

import com.google.android.gms.gcm.GcmListenerService;

//Class is extending GcmListenerService
public class GCMPushReceiverService extends GcmListenerService {

    //This method will be called on every new message received
    @Override
    public void onMessageReceived(String from, Bundle data) {
        //Getting the message from the bundle
        String message = data.getString("message");
        //Displaying a notiffication with the message
        sendNotification(message);
    }

    //This method is generating a notification and displaying the notification
    private void sendNotification(String message) {
        Intent intent = new Intent(this, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        int requestCode = 0;
        PendingIntent pendingIntent = PendingIntent.getActivity(this, requestCode, intent, PendingIntent.FLAG_ONE_SHOT);
        NotificationCompat.Builder noBuilder = new NotificationCompat.Builder(this)
                .setSmallIcon(R.drawable.your_logo)
                .setContentTitle("Your Amazing Title")
                .setContentText(message)
                .setPriority(Notification.PRIORITY_MAX)
                .setContentIntent(pendingIntent);
        noBuilder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));

        NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.notify(0, noBuilder.build()); //0 = ID of notification
    }
}

5) पैकेज का नाम बदलना न भूलें

6) अपने mainActivity में यह कोड पेस्ट करें:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Setup view
        setContentView(R.layout.main);
    mRegistrationBroadcastReceiver = new BroadcastReceiver() {

        //When the broadcast received
        //We are sending the broadcast from GCMRegistrationIntentService

        public void onReceive(Context context, Intent intent) {
            //If the broadcast has received with success
            //that means device is registered successfully
            if(intent.getAction().equals(GCMRegistrationIntentService.REGISTRATION_SUCCESS)){
                //Getting the registration token from the intent
                String token = intent.getStringExtra("token");
                //Displaying the token as toast
                Toast.makeText(getApplicationContext(), "Registration token:" + token, Toast.LENGTH_LONG).show();

                //if the intent is not with success then displaying error messages
            } else if(intent.getAction().equals(GCMRegistrationIntentService.REGISTRATION_ERROR)){
                Toast.makeText(getApplicationContext(), "GCM registration error!", Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(getApplicationContext(), "Error occurred", Toast.LENGTH_LONG).show();
            }
        }
    };

    //Checking play service is available or not
    int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());

    //if play service is not available
    if(ConnectionResult.SUCCESS != resultCode) {
        //If play service is supported but not installed
        if(GooglePlayServicesUtil.isUserRecoverableError(resultCode)) {
            //Displaying message that play service is not installed
            Toast.makeText(getApplicationContext(), "Google Play Service is not install/enabled in this device!", Toast.LENGTH_LONG).show();
            GooglePlayServicesUtil.showErrorNotification(resultCode, getApplicationContext());

            //If play service is not supported
            //Displaying an error message
        } else {
            Toast.makeText(getApplicationContext(), "This device does not support for Google Play Service!", Toast.LENGTH_LONG).show();
        }

        //If play service is available
    } else {
        //Starting intent to register device
        Intent itent = new Intent(this, GCMRegistrationIntentService.class);
        startService(itent);
    }
}

//Unregistering receiver on activity paused
@Override
public void onPause() {
    super.onPause();
    Log.w("MainActivity", "onPause");
    LocalBroadcastManager.getInstance(this).unregisterReceiver(mRegistrationBroadcastReceiver);
}



    @Override
    public void onResume() {
 super.onResume();
        Log.w("MainActivity", "onResume");
        LocalBroadcastManager.getInstance(this).registerReceiver(mRegistrationBroadcastReceiver,
                new IntentFilter(GCMRegistrationIntentService.REGISTRATION_SUCCESS));
        LocalBroadcastManager.getInstance(this).registerReceiver(mRegistrationBroadcastReceiver,
                new IntentFilter(GCMRegistrationIntentService.REGISTRATION_ERROR));
    }

7) अपने AndroidManifest.xml में निम्न पंक्तियाँ जोड़ें:

<uses-permission android:name="android.permission.INTERNET" />

8) अपने कंसोल में लॉगकैट अपने टोकन को कॉपी करें और इस साइट पर पेस्ट करें अपना प्रोजेक्ट नंबर, अपना टोकन और एक संदेश जोड़ें। यह मेरे लिए ठीक काम है :)


हाय @Skygirl मैं आपके उदाहरण का अनुसरण कर रहा हूं, AndroidManifest में कोई विशेष आवश्यकता है? क्या आप कृपया कोड का वह हिस्सा जोड़ सकते हैं? धन्यवाद
ziniestro

0

इस पर एक पूरे दिन के बाद, मैं 100% की पुष्टि कर सकता हूं कि ऑप्टिमाइज़ली लाइब्रेरी भी किसी तरह से टकरा रही है और इस त्रुटि का कारण बन रही है। विशिष्ट होने के लिए, मैं फैब्रिक के माध्यम से ऑप्टिमाइज़ली का उपयोग कर रहा हूं। इस तरह से ऑप्टिमाइज़ली का उपयोग करते हुए फायरबेज़ को प्राप्त करना असंभव है (शायद सभी तरीकों से?)।

मैंने इसके बारे में उनके github पर पोस्ट किया है और उनसे सीधे संपर्क करूंगा ...

https://github.com/optimizely/Optimizely-Android-SDK/issues/11


0

मुझे भी यही समस्या थी। मैंने एसडीके टूल्स को 25.1.7 आरसी 1 पर अपडेट किया, फिर समस्या दूर हो गई।



0

खैर, मैं अभी Android का उपयोग करने वाला हूं। मैं Firebaseनिम्नलिखित निर्देशों में उपयोगकर्ताओं को बनाने का परीक्षण करना चाहता था जो फायरबेस वेबसाइट में प्रदान किए गए हैं।

मैंने संकेतित स्थानों में उन पंक्तियों को जोड़ा।

classpath 'com.google.gms: Google-Services: 3.0.0'

संकलित करें 'com.google.firebase: firebase-cort: 9.2.0'

प्लगइन लागू करें: 'com.google.gms.google-services'

लेकिन createUserWithEmailAndPassword विधि उपयोगकर्ताओं को बनाने में विफलता दिखाती रही। इसलिए मैंने अपनी समस्या का पता लगाने के लिए इस प्रश्न का दौरा किया। मैंने सभी को पढ़ा और प्रत्येक सलाह को लागू किया। लेकिन आईटी असफलता दिखाता रहा। लेकिन जब मैं अपग्रेड करता हूं Android Studio from 2.1.1 to 2.1.2, तो मैं उपयोगकर्ताओं को सफलतापूर्वक बना सकता हूं।

लेकिन जब मैंने जाँच की logcat, तो यह पहली बार दिखा"Firebase API initialization failure" और फिर "FirebaseApp आरंभीकरण सफल" दिखाया।

07-09 18:53:37.012 13352-13352/jayground.firebasetest A/FirebaseApp: Firebase API initialization failure. How can I solve

यह? java.lang.reflect.InvocationTargetException पर java.lang.reflect.Method.invokeNative (मूल विधि) java.lang.reflect.Method.invoke (विधि .java 20115) पर com.google.firebase.FirebaseApp.zza (अज्ञात) Com.google.firebase.FirebaseApp.initializeApp (अज्ञात स्रोत) पर com.google.firebase.FirebaseApp पर स्रोत)।


ठीक। धन्यवाद। मुझे लगा कि यह साझा करना अच्छा होगा कि मैंने अपनी समस्या को कैसे हल किया। (यदि मैं इसे पूरी तरह से हल कर लेता हूं तो मुझे यकीन नहीं था। मैं एंड्रॉइड स्टूडियो वर्जन को अपडेट करने के बाद com.google.firebase: firebase-Andor: 9.2.0 के साथ उपयोगकर्ता बना सकता हूं, लेकिन इसमें अभी भी लॉगबैट में फायरबेस एपीआई प्रारंभिककरण विफलता है। इसलिए मुझे आश्चर्य हुआ। ) मैं अगली बार 'ASK प्रश्न बटन' का उपयोग करूंगा।
Jayground

0

मुझे इस समस्या का सामना करना पड़ा है, और मैंने अपना ऐप ग्रेड संस्करण को 1.5.0 से 2.0.0 तक बदल दिया है।

क्लासपाथ बदलें

com.android.tools.build:gradle:1.5.0

सेवा

classpath 'com.android.tools.build:gradle:2.0.0


0

समाधान 1:

dependencies {
 compile `com.android.support:appcompat-v7:23.4.0`
 compile `com.android.support:support-v4:23.4.0`
 compile `com.android.support:design:23.4.0`
 compile `com.google.android.gms:play-services:9.0.0`
}

समाधान 2: फ़ोल्डर पर असंगत का पता लगाएं। .idie / l पुस्तकालयों / .समय के लिए जब आप खेलने-सेवाओं-विज्ञापनों की घोषणा करते हैं: 8.4.0 play-services-gcm के साथ समवर्ती: 9.0.0। आपके द्वारा पहचानी गई असंगत लायब्रेरीज़ build.grad पर ओवरराइड करना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.