Không tương thíchClassChangeError sau khi cập nhật lên Android Build Tools 25.1.6 GCM / FCM


80

Vì tôi đã cập nhật lên Android SDK Tools 25.1.6 và Android Support Repository 32.0.0 (sáng nay), tôi đã gặp lỗi sau, tôi không thay đổi bất kỳ điều gì trong mã của mình và nó vẫn đang hoạt động trên máy tính của đồng nghiệp của tôi (Android SDK Tools 25.1.1 + Kho lưu trữ hỗ trợ Android 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)

Đây là đoạn mã bị lỗi:

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

Đó là khi tôi cố gắng lấy mã thông báo từ Google Cloud Messaging.

Tôi đang nhập GCM trong Gradle với các dịch vụ chơi được chia nhỏ:

 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'

EDIT tắt GCM đã khắc phục sự cố, vì vậy tôi đoán là tôi nên chuyển sang Firebase Cloud Message

EDIT2 Thiết bị của tôi nhận được Dịch vụ của Google Play 9.0 (ngày hôm qua là 8.4.x). Bây giờ nó không bị treo nữa, nhưng phàn nàn về bộ mô tả mô-đun

 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.

Có ai gặp lỗi tương tự không, và cách khắc phục?

CỐ ĐỊNH đặc biệt cảm ơn @stegranet. ./gradlew -q app:dependencies --configuration compilegiúp bạn xác định những phụ thuộc nào bao gồm SDK 24.x

Vấn đề chính là một số thư viện nhập thư viện hỗ trợ mới nhất bằng +ký hiệu thay vì phiên bản. Điều này gây ra sự cố, bằng cách bao gồm phiên bản mới nhất hiện có.

Vì vậy, tránh +đăng nhập phụ thuộc;)


Rõ ràng là Google Cloud Messaging trở thành Firebase Cloud Messaging: firebase.google.com/docs/cloud-messaging không chắc liệu có liên quan hay không, vẫn đang điều tra.
sonique

Tôi cảm thấy đây không phải là vấn đề về công cụ xây dựng. Nó liên quan đến dịch vụ google play. Tôi đã sử dụng phiên bản 9.0.0 và vẫn gặp lỗi cộng với việc nó phàn nàn về việc chữ ký của tôi không hợp lệ ...
Arnold Balliu

Làm cách nào để kiểm tra phiên bản dịch vụ Google Play trên điện thoại di động của bạn? Tôi thấy Google Play Âm nhạc, Trò chơi, v.v. nhưng không có gì giống như dịch vụ Play.
bschandramohan

Câu trả lời:


37

Tôi đã sử dụng cây phụ thuộc gradle để giải quyết lỗi này cho tôi.

Chỉ cần chạy gradle -q app:dependencies --configuration compile và kiểm tra đầu ra cho các mục nhập như sau:

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

Như Diego Giorgini đã nói phiên bản này quá cao (> = 24). Vì vậy, hãy cập nhật các phần phụ thuộc build.gradlenhư

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

Vấn đề chính là một số thư viện hỗ trợ nhập mô-đun sử dụng +dấu hiệu (như trong ví dụ của bạn). Vì vậy, gradle bao gồm phiên bản mới nhất không phù hợp với trường hợp ngoại lệ. Cảm ơn!
sonique

1
Tôi không hiểu bằng cách nào Android có thể đưa> = 24 phụ thuộc vào dự án của chúng tôi nếu chúng tôi chỉ định mọi thứ như bên dưới 24. Đây dường như là một vấn đề mới hiện đã gạch các phiên bản gỡ lỗi của ứng dụng của tôi và dẫn đến khá nhiều nhầm lẫn - trong khi phiên bản cửa hàng có cùng mã có vẻ ổn
Daniel Wilson

Cảm ơn stegranet đã xác nhận. Chúng tôi chỉ phát hành một bản cập nhật để sửa lỗi này. Vui lòng thử phiên bản 9.0.1
Diego Giorgini

Plugin Android Studio GradleView để phân tích dự án của bạn.
Jignesh Patel

Tôi chạy đoạn mã sau ở đâu? "ứng dụng gradle -q: phụ thuộc - biên dịch cấu hình"
Roee

35

cập nhật ngày 27 tháng 5:

chúng tôi vừa phát hành bản cập nhật ( version 9.0.1) để sửa lỗi không tương thích mà tôi đã đề cập trong lần chỉnh sửa đầu tiên của mình.
Vui lòng cập nhật phần phụ thuộc của bạn và cho chúng tôi biết nếu đây vẫn là sự cố.

Cảm ơn!


câu trả lời gốc ngày 20 tháng 5:

Sự cố bạn đang gặp phải là do sự không tương thích giữa
play-services / firebase sdk v9.0.0com.android.support:appcompat-v7 >= 24
(phiên bản được phát hành với android-N sdk)

Bạn có thể sửa nó bằng cách nhắm mục tiêu phiên bản cũ hơn của thư viện hỗ trợ. Giống:

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

2
Đây là giải pháp duy nhất dường như đã hiệu quả, cảm ơn bạn. Hơi đáng sợ là những lỗi như vậy có thể lọt vào bản phát hành sản xuất nếu bạn không ngại tôi nói!
Daniel Wilson

tôi đã thực hiện, đã cập nhật: - compile 'com.google.android.gms: play-services-gcm: 9.0.2' cũng như com.google.gms: google-services: 3.0.0 'nhưng nó dẫn đến lỗi multidex. Bất kỳ ý tưởng!!
Rohit

'com.google.android.gms: play-services-gcm: 9.0.2' vẫn gặp sự cố này
Tom Bevelander

Sử dụng 9.0.2 cho tất cả các mô-đun 'play-services' của tôi và 'com.google.gms: google-services: 3.0.0' trong bản dựng dự án. Cũng sử dụng thư viện hỗ trợ 24.0.0 được phát hành gần đây. Tôi đã có thể xóa lỗi khi thay thế "compile 'com.google.android.gms: play-services-gcm: 9.0.2'" bằng "compile 'com.google.firebase: firebase-message: 9.0.2'"
c0deblooded

Tôi gặp lỗi này khi cố gắng thay đổi phiên bản thành 9.0.1> Vui lòng khắc phục xung đột phiên bản bằng cách cập nhật phiên bản của plugin google-services (thông tin về phiên bản mới nhất có tại bintray.com/android/android-tools/… ) hoặc cập nhật phiên bản com.google.android.gms lên 9.0.0. @Diego Giorgini
Roger Alien

5

của tôi đã làm việc với những điều sau:

cấp độ ứng dụng

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'
}

cấp độ gốc

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

2
Điều này đã làm việc cho tôi ... Tôi đã thay đổi tất cả các phiên bản 24.2.1 thành 23.4.0 và getToken hoạt động trở lại ... Điều này thật khủng khiếp! Bây giờ tôi sợ phải nâng cấp các phiên bản.
EZDs vào

5

Tôi đã cập nhật các phụ thuộc dịch vụ chơi trong build.gradle

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

Để khắc phục xung đột phiên bản bằng cách cập nhật phiên bản của plugin google-services - tôi phải cập nhật google-services trong build.gradlethư mục gốc của dự án

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

Bạn có thể nhận được bản cập nhật mới nhất của các dịch vụ google tại đây .

Mặc dù nó không tránh được ngoại lệ nhưng nó không làm sập ứng dụng nữa ở bên tôi.

Cập nhật

Tôi có thể tránh sự cố bằng cách cập nhật Android studio từ Kênh Beta. Sau đó, cập nhật platform/build-toolsSDK bên trong của bạn .

nhập mô tả hình ảnh ở đây


Cảm ơn, tôi đã cập nhật google-services lên 3.0.0, nhưng không giúp được gì :(
sonique

Trong trường hợp của tôi, tôi nhận được ngoại lệ trong logcat, nhưng nó không bị lỗi nữa
Reaz Murshed vào

ok, cảm ơn bạn đã phản hồi. Bạn có đang sử dụng Android Build Tools 25.1.6 không?
sonique

bạn nói đúng, nó hoạt động với play-services 9.0.0, nhưng không hoạt động với các dịch vụ chia nhỏ :(
sonique 19/05

tôi đã làm điều đó, đã cập nhật biên dịch 'com.google.android.gms: play-services-gcm: 9.0.2' cũng như com.google.gms: google-services: 3.0.0 'nhưng nó dẫn đến lỗi multidex. Bất kỳ ý tưởng!!
Rohit

4

Việc cập nhật lên phiên bản dịch vụ google play mới nhất đã khắc phục sự cố cho tôi.

áp dụng plugin: 'com.google.gms.google-services' ở cuối ...

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


cảm ơn, tôi cũng đã cập nhật 9.0.0, nhưng vẫn gặp sự cố. Tôi hiện đang sử dụng phân tách 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'
sonique

Tôi đã cố gắng biên dịch với play-services:9.0.0, nhưng vấn đề vẫn tương tự.
sonique

Tôi đang sử dụng 'com.google.android.gms: play-dịch vụ-gcm: 9.0.2' nhưng có cùng một vấn đề
Tom Bevelander


1

Bằng cách bao gồm tất cả các gói dịch vụ vui chơi

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

bạn thông báo lỗi, nhưng kết quả cuối cùng là quá trình truy xuất mã thông báo GCM không hoạt động và chúng tôi không thể nhận được một phiên bản của GCM. Vì vậy, đây không phải là một giải pháp trong sách của tôi. Nếu bất cứ ai có bất kỳ ý tưởng những gì đang xảy ra xin vui lòng khai sáng cho chúng tôi.

BIÊN TẬP:

Tôi đã thay thế GCM bằng firebase, cập nhật android studio từ 2.1 lên 2.2 để khắc phục sự cố chạy tức thì với phân tích firebase, cập nhật các công cụ xây dựng lên 24-rc4 và các công cụ nền tảng lên 24-rc3 và giữ phiên bản hỗ trợ libs của tôi thành 23.4.0. Mọi thứ dường như đang hoạt động tốt bây giờ.


có vẻ như chúng ta phải triển khai FCM
sonique

Tôi đã làm điều đó và tôi vẫn gặp lỗi tương tự. Tôi đã xóa hoàn toàn GCM và thay thế nó bằng FCM dựa trên điều này: Developers.google.com/cloud-messaging/android/… Đã xảy ra lỗi với thư viện hỗ trợ không phải gói GCM hoặc FCM
Stilianos Tzouvaras

1

Tôi gặp sự cố tương tự và việc hoàn nguyên từ Kho hỗ trợ Android 32.0.0 sang Kho lưu trữ hỗ trợ Android 31.0.0 đã giải quyết được vấn đề này.


3
làm thế nào để bạn hoàn nguyên kho hỗ trợ android?
Pratama Nur Wijaya

2
Vâng, cách duy nhất mà tôi tìm thấy là sao chép kho lưu trữ cũ thay vì kho mới. Kho lưu trữ thường nằm trong thư mục Android mà 'trình quản lý SDK' của bạn đang trỏ đến (nếu bạn sử dụng máy mac, nó có thể là đường dẫn ~ / Library / Android / sdk / extras). Trong thư mục bổ sung, hãy thay thế các thư mục 'android và' google 'bằng các thư mục cũ.
BorisK

Tôi đã tìm thấy kho ở đây: dl-ssl.google.com/android/repository/… , sau đó giải nén kho đó thành ../sdk/extras/android và xóa m2reposity hiện có dường như hoạt động cho đến nay.
Tom Redman

1

Đối với thông báo đẩy của Android với GCM 2016:

1) trong SDK Android-> Công cụ SDK, hãy kiểm tra các dịch vụ của Google Play

2) trong gradle thêm phụ thuộc chỉ một dòng:

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

(không có classpath cụ thể và nó phù hợp với tôi)

3) bạn phải tạo 3 lớp (GCMPushReceiverService, GCMRegistrationIntentService, GCMTokenRefreshListenerService)

4.1) mã cho 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) Mã cho GCMRegistrationIntentService (thay đổi ủy quyềnEntity bằng số dự án của bạn):

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) Mã cho 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) Đừng quên thay đổi tên gói

6) Trong mainActivity của bạn, hãy dán mã này:

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) Trong AndroidManifest.xml của bạn, hãy thêm các dòng sau:

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

8) trong logcat bảng điều khiển của bạn sao chép mã thông báo của bạn và dán trên trang web này, thêm số dự án, mã thông báo của bạn và một tin nhắn. Nó làm việc tốt cho tôi :)


Xin chào @Skygirl Tôi đang làm theo ví dụ của bạn, có yêu cầu đặc biệt nào trong AndroidManifest không? Bạn có thể vui lòng thêm phần đó của mã không? Cảm ơn
ziniestro

0

Sau cả ngày làm việc này, tôi có thể xác nhận 100% rằng thư viện Optimizely cũng đang xung đột theo một cách nào đó và gây ra lỗi này. Cụ thể, tôi đang sử dụng Optimizely via Fabric. Không thể bắt Firebase khởi tạo trong khi sử dụng Optimizely theo cách này (có thể theo mọi cách?).

Tôi đã đăng trên github của họ về điều đó và sẽ liên hệ trực tiếp với họ ...

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


0

Tôi đã từng gặp vấn đề tương tự. Tôi đã cập nhật các công cụ SDK lên 25.1.7 rc1, sau đó sự cố đã biến mất.


0

đã cập nhật các công cụ SDK lên 25.1.7 và khắc phục sự cố này.


0

Tôi chỉ mới bắt đầu sử dụng Android. Tôi muốn kiểm tra việc tạo người dùng theo Firebasecác hướng dẫn được cung cấp trên trang web Firebase.

Tôi đã thêm những dòng đó ở những nơi được chỉ định.

classpath 'com.google.gms: google-services: 3.0.0'

biên dịch 'com.google.firebase: firebase-auth: 9.2.0'

áp dụng plugin: 'com.google.gms.google-services'

Nhưng Phương pháp createUserWithEmailAndPassword liên tục cho thấy sự thất bại trong việc tạo người dùng. Đó là lý do tại sao tôi truy cập câu hỏi này để tìm ra vấn đề của mình. Tôi đọc tất cả và áp dụng từng lời khuyên. nhưng CNTT liên tục cho thấy sự thất bại. Nhưng khi tôi nâng cấp Android Studio from 2.1.1 to 2.1.2, tôi có thể tạo người dùng thành công.

Nhưng khi tôi kiểm tra logcat, đầu tiên nó hiển thị "Firebase API initialization failure"và sau đó hiển thị "Khởi tạo FirebaseApp thành công".

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

điều này? java.lang.reflect.InvocationTargetException tại java.lang.reflect.Method.invokeNative (Native Method) tại java.lang.reflect.Method.invoke (Method.java:515) tại com.google.firebase.FirebaseApp.zza (Không xác định Nguồn) tại com.google.firebase.FirebaseApp.initializeApp (Nguồn không xác định) tại com.google.firebase.FirebaseApp.


Đồng ý. Cảm ơn bạn. Tôi nghĩ sẽ rất tốt nếu chia sẻ cách tôi đã giải quyết vấn đề của mình. (Chỉ là tôi không chắc mình đã giải quyết được hoàn toàn hay chưa. Tôi có thể tạo người dùng bằng com.google.firebase: firebase-auth: 9.2.0 sau khi cập nhật phiên bản Android Studio nhưng nó vẫn gặp lỗi khởi tạo API Firebase trong logcat. Vì vậy, tôi đã rất băn khoăn ) Tôi sẽ sử dụng 'nút HỎI Câu hỏi' vào lần sau.
Jayground

0

Tôi đã gặp phải sự cố này và tôi thay đổi phiên bản gradle ứng dụng của mình từ 1.5.0 sang 2.0.0.

thay đổi classpath

com.android.tools.build:gradle:1.5.0

đến

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


0

Giải pháp 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`
}

Giải pháp 2: phát hiện không tương thích trên thư mục .idie / architects /. Một lúc nào đó bạn khai báo play-services-ads: 8.4.0 đồng thời với play-services-gcm: 9.0.0. Bạn phải ghi đè lên các thư viện không tương thích build.grade mà bạn đã phát hiện thấy

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.