Lỗi: Trạng thái {statusCode = DEVELOPER_ERROR, Resolution = null}


102

Tôi đăng nhập gplus đăng nhập và nhận được lỗi này tại thời điểm tôi đang ở onActivityResult ....

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
    client.onActivityResult(requestCode, resultCode, data);

    if (requestCode == 0) {
        GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
        if (result.isSuccess()) {

            GoogleSignInAccount acct = result.getSignInAccount();
//                Log.d("Result","details"+ acct.getDisplayName() + acct.getEmail());

            mEmail = acct.getEmail();
            String mFullName = acct.getDisplayName();
            String mGoogleplusId = acct.getId();


            SocialUser user = new SocialUser();
            user.setType("googleplus");

            user.setEmail(mEmail);
            user.setFullname(mFullName);
            user.setId(mGoogleplusId + "");
            loginParams.put("email_id", mEmail);
            loginParams.put("googlePlusId", mGoogleplusId);
            loginParams.put("full_name", mFullName);
            loginParams.put("registrationType", "googleplus");
            SignUpService(user);


        } else {
            Toast.makeText(CustomerLogIn.this, "Unable to fetch data, Proceed manually", Toast.LENGTH_SHORT).show();
        }
    }
}

Và tôi đang kêu gọi đăng nhập gplus khi nhấp vào nút. Trên nút bấm mã sau được thực hiện ....

 GoogleSignInOptions googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .build();
    mGoogleApiClient = new GoogleApiClient.Builder(CustomerLogIn.this)

            .addApi(Auth.GOOGLE_SIGN_IN_API, googleSignInOptions)
            .build();


    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
    startActivityForResult(signInIntent, 0);

Và tôi xác định lỗi này ...

Status{statusCode=DEVELOPER_ERROR, resolution=null}

trên dòng này ....

GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);

Hãy đề xuất giải pháp.


1
Ứng dụng được định cấu hình sai. Kiểm tra cấu hình api google.
1'hafs

6
Có nhưng tôi không thể tìm ra điều gì sai.
Gurvinder Singh

Tôi không sử dụng firebase. Xem giải pháp của tôi ở đây: stackoverflow.com/a/46828895/1160216
Mike Miller

Câu trả lời:


213

Bạn cần thêm khóa SHA1 của mình vào cấu hình bảng điều khiển firebase. Bạn có thể làm theo cách này:

Bảng điều khiển Firebase ( https://console.firebase.google.com ) -> dự án của bạn -> cấu hình -> cuộn đến

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

Bạn có thể tìm thấy khóa SHA1 của mình đang chạy "Báo cáo ký" từ Android Studio:

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

Sau đó, nhìn vào "tab chạy" và nhấp vào nút:

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

Tôi nghĩ đó là cách dễ dàng hơn. Hy vọng điều này giúp đỡ.


1
đây là cách dễ nhất để nhận bản phát hành SHA-1 từ bảng điều khiển dành cho nhà phát triển của google: stackoverflow.com/a/50124038/4923891
eren130

Tôi có vấn đề không hiểu nơi đặt khóa SHA đó trong Bảng điều khiển Firebase. Cuối cùng cũng tìm thấy nó. Mở Cài đặt dự án> Cuộn xuống, Thêm vân tay, Đặt khóa SHA của bạn ở đó> Tải xuống google-services.json mới và đặt nó là android-app \ app
paakjis

1
Ghi chú! Mặc dù bảng điều khiển firebase có khoảng trống cho hàm băm khóa SHA-256, bạn PHẢI nhập khóa SHA-1. SHA-256 sẽ vẫn cung cấp cho bạn lỗi
f.khantsis

Hữu ích. Cảm ơn!
Pooja

30

Có thể bạn đã tạo tệp cấu hình bằng SHA1 của mã thông báo sản xuất của mình , sử dụng androiddebugkeybí danh để thu thập SHA1 tương ứng với phiên bản gỡ lỗi của ứng dụng và sao chép tệp cấu hình vào thư mục 'ứng dụng', bạn phải có cả hai tệp cấu hình (một tệp cho mục đích gỡ lỗi và mục đích khác cho môi trường sản xuất).

Dựa trên hướng dẫn được xuất bản trong https://developers.google.com/identity/sign-in/android/start


5
Lỗi của tôi đã được khắc phục khi tôi chuyển sang bằng chứng xác thực Ứng dụng khách web thay vì Ứng dụng khách Android cho ID ứng dụng khách OAuth 2.0. Từ ngữ vẫn khiến tôi bối rối vì tôi đang phát triển một ứng dụng Android nói chuyện với máy chủ web ... nhưng lỗi đã biến mất ít nhất
Burrito

12

Tôi đã gặp vấn đề tương tự và tôi đã khắc phục sự cố bằng cách thực hiện các bước sau:

1. Thêm tệp tham chiếu DEBUG_KEYSTORE SHA1 vào dự án firebase. sử dụng lệnh sau (MAC / LINUX)

  keytool -exportcert -list -v \-alias androiddebugkey -keystore ~/.android/debug.keystore  

2.Bây giờ Tạo apk đã ký cho dự án của bạn. Quá trình này bao gồm việc tạo kho khóa cho phiên bản phát hành ứng dụng của bạn.

  Copy the path of the newly generated .jks file.

3.Bây giờ tạo vân tay RELEASE_KEYSTORE SHA1 bằng lệnh sau

  keytool -list -v -keystore FULL_PATH_TOJKS_FILE -alias ALIAS_NAME

4. Sao chép SHA1 mới từ đầu ra và thêm nó làm tệp tham chiếu SHA1 khác trong bảng điều khiển ứng dụng firebase của bạn.

Bây giờ bạn tốt để đi! ---- Hy vọng! nó giúp.


rằng sha1 phát hành chỉ đang đặt sau đó cũng nhận được lỗi này, tạo google_services.xml cho dấu google trong, phân tích và gcm, tập tin duy nhất
Harsha

đảm bảo rằng sha1 của bạn là phiên bản 'phát hành' của ứng dụng không phải là phiên bản 'gỡ lỗi'
Udit Kapahi

Hà Có đang tạo ra apk ký kết và công bố trên appstore cũng có, mà jks và mật khẩu keystore chỉ là sử dụng
Harsha

ssl mở của tôi là openssl-0.9.8k_WIN32 sáng sử dụng previos cho một sự phát triển
Harsha

keytool yêu cầu mật khẩu : "android"
Guglie

11

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

Cách tôi sửa nó là chọn khóa tương ứng với văn bản được đánh dấu. Do cách sử dụng khó hiểu của từ 'máy chủ' trong trang tài liệu của Firebase, tôi đã chọn Server key. Đó là lý do cho vấn đề.

Bạn có thể tìm thấy chìa khóa ở đây .


Cảm ơn! Làm việc trong trường hợp của tôi. Tôi nghĩ rằng nó bằng cách nào đó kết nối với máy chủ sử dụng phụ trợ riêng (và kêu gọi "requestServerAuthCode" trong GoogleSignIn)
ITurchenko

5

Tôi đang gặp vấn đề tương tự, cách tôi giải quyết nó là tôi có applicationId trong tệp gradle khác với tên gói trong tệp kê khai của tôi. Và tôi đã sử dụng applicationId để tạo tệp json. Tôi đã phải thay đổi tên gói của mình thành applicationId của tôi và điều đó đã sửa nó cho tôi.


1
tôi luôn nghĩ rằng gói trong Tệp kê khai đã bị ghi đè bởi ApplicationId được định nghĩa trong gradle. Đó không phải là trường hợp?
Flo We

3

Ngoài các câu trả lời được cung cấp tại đây, bạn có thể sử dụng Trợ lý Firebase của Android Studio để tự động thêm SHA-1 vào dự án của bạn bằng cách nhấp vào một số nút.

Trong Android Studio, hãy truy cập Tools > Firebase > Select 'Authentication'và nhấp vào liên kết cho biết 'Email and password authentication'.

Điều này sẽ mang đến cho bạn một hướng dẫn nhỏ về cách tích hợp Xác thực vào dự án của bạn, nhưng vì bạn có thể đã làm tất cả những điều đó, chỉ cần nhấp vào 'Connect to Firebase'là xong.


3

Đây là một câu hỏi cũ, nhưng tôi đã gặp lỗi 10 (DEVELOPER_ERROR) gần đây, vì tôi đang sử dụng ID ứng dụng khách Android, tôi đã tạo trong bảng điều khiển dành cho nhà phát triển của Google.

Giải pháp cho tôi là chỉ sử dụng thông tin đăng nhập Android trong bảng điều khiển dành cho nhà phát triển của Google để chỉ ra khóa SHA của gói ứng dụng của tôi và sử dụng ID ứng dụng khách của thông tin đăng nhập ứng dụng Web (!) Từ bảng điều khiển dành cho nhà phát triển của Google trong ứng dụng cordova của tôi.

config.xml:

<plugin name="cordova-plugin-googleplus" spec="^5.3.0">
    <variable name="REVERSED_CLIENT_ID" value="com.googleusercontent.apps.[web-application-client-id]" />
    <variable name="WEB_APPLICATION_CLIENT_ID" value="[web-application-client-id].apps.googleusercontent.com" />
</plugin>

mã:

window.plugins.googleplus.login(
    {
       'webClientId': '[web-application-client-id].apps.googleusercontent.com'
    }, 
    ...

Tôi không sử dụng firebase.


Cảm ơn bạn rất nhiều, nó đã tiết kiệm cho tôi rất nhiều thời gian. Thật vậy bằng cách sử dụng web được tạo tự động đã client idgiải quyết được sự cố DEVELOPER_ERROR. Mặc dù đối với tôi điều đó không có ý nghĩa và không rõ ràng là nên sử dụng các id khách hàng khác nhau.
Myroslav Kolodii

3

Bạn có thể đã tạo và thêm khóa SHA1 sai. Sử dụng các bước sau để tạo khóa SHA1 trong Android studio:

  1. Nhấp vào Gradle (Từ Bảng bên phải, bạn sẽ thấy Gradle Bar)
  2. Nhấp vào Làm mới (Nhấp vào Làm mới từ Thanh Gradle, bạn sẽ thấy các tập lệnh List Gradle của Dự án của bạn)
  3. Nhấp vào Dự án của bạn (Danh sách biểu mẫu Tên Dự án của bạn (gốc))
  4. Nhấp vào Nhiệm vụ
  5. Nhấp vào Android
  6. Nhấp đúp vào SignReport (Bạn sẽ nhận được SHA1 và MD5 trong Run Bar (Đôi khi nó sẽ có trong Gradle Console))

Bây giờ hãy thêm khóa SHA1 này vào dự án android firebase của bạn.



1

Đối với tôi, nó đã hoạt động khi tôi lần đầu tiên triển khai nó, nhưng đã dừng lại sau một vài ngày phát triển, với thông báo lỗi đã đề cập.

Tôi đã giải quyết vấn đề bằng các bước sau:

  1. Tôi đã thêm vân tay sha-256 lên trên vân tay sha-1 mà tôi đã có trong bảng điều khiển firebase. (Không chắc chắn nếu bước này là bắt buộc)
  2. Tôi đã tải xuống lại tệp google-services.json và thay thế tệp cũ.
  3. cài đặt lại ứng dụng

va no đa hoạt động


0

Tôi đã gặp lỗi này trong ứng dụng firebase của mình. Nó đã được sửa khi tôi thêm requestIdToken(activity.getString(R.string.default_web_client_id))phần bên dưới.

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
        .requestEmail().requestIdToken(activity.getString(R.string.default_web_client_id))
        .build();

    apiClient = new GoogleApiClient.Builder(activity)
        .addConnectionCallbacks(this)
        .enableAutoManage(activity, this)
        .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
        .build();

    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(apiClient);
    activity.startActivityForResult(signInIntent, RC_GOOGLE_SIGN_IN);

default_web_client_id là gì? từ đâu tôi có thể lấy nó?
Ayman Al-Absi

@ AymanAl-Absi Bạn đã thiết lập đúng dự án của mình cho các dịch vụ của Google chưa? xem: Developers.google.com/android/guides/google-services-plugin
Dan Brough

1
@ AymanAl-Absi, bạn cũng nhận được "default_web_client_id" từ tệp google-service.json của mình trong tệp này, bạn có thể thấy thẻ Client_ID trong thẻ đó bạn chỉ sao chép văn bản đó (client_ID) <[Client_ID] .app.etc>.
Prince

0

Tôi gặp lỗi này khi cập nhật tệp cấu hình json của mình bằng tài khoản google mới.

Gỡ cài đặt ứng dụng theo cách thủ công và cài đặt lại ứng dụng phù hợp với tôi.


0

Lỗi xảy ra do tổng kiểm tra SHA-1 của khóa gỡ lỗi hoặc khóa phát hành không được bao gồm trong bảng điều khiển firebase / google.

Đầu tiên tạo khóa bằng lệnh sau:

keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAME

Sau đó, sao chép tổng kiểm tra SHA-1 và đi tới:

Bảng điều khiển Firebase> Dự án của bạn> Cài đặt ứng dụng> Thêm vân tay



0

Đảm bảo bạn bật Đăng nhập bằng Google trong Xác thực trong bảng điều khiển Firebase.


0

Tôi đã giải quyết vấn đề của mình bằng cách sử dụng ngay server_client_id trong dòng này:

String serverClientId = getString(R.string.server_client_id);

Tôi đã sử dụng sai mã.


0

Một số Dịch vụ như đăng nhập google yêu cầu phải thêm vân tay SHA1 vào bảng điều khiển firebase của bạn.

Tôi đã bỏ lỡ thêm tệp tham chiếu SHA trong bảng điều khiển firebase. Bạn có thể làm như vậy bằng cách vào Bảng điều khiển FireBase> cài đặt dự án> Thêm tùy chọn vân tay.

Bạn có thể tạo Vân tay SHA1 bằng cách rất dễ dàng https://www.youtube.com/watch?v=FczARQ244GE

Sau đó tôi đã phạm một sai lầm nữa

Sau khi generationg SHA1 key fom phương pháp trên. Tôi đã sao chép nhầm khóa SHA1 không hợp lệ, khóa này đã hết hạn. Vì vậy, hãy đảm bảo rằng khóa SHA1 mà bạn đang sao chép từ đầu ra theo cách trên là khóa hợp lệ (Kiểm tra giá trị không hợp lệ cũng như của Khóa SHA1)

Ngoài ra, hãy đảm bảo rằng tên gói (xyz) mà bạn đã thêm vào firebase giống như được sử dụng trong mã android của bạn.

Đồng thời đảm bảo sử dụng đúng AppID


0

Sau thời gian dài điều tra, tôi đã tìm ra giải pháp. Thực ra lỗi này Error: Status{statusCode=DEVELOPER_ERROR, resolution=null}điểm không chính xác SHA-1 HOẶC tên gói không đúng HOẶC cái gì khác ?. Trong trường hợp của tôi, tôi thêm debugtừ khóa vào cuối tên gói của mình com.sample.app=>com.sample.app.debug


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.