2013-06-06 16 views
10

Tôi đã thử nghiệm ví dụ ButtonClicker 2000 và nó hoạt động tốt. Bây giờ tôi đang cố gắng để thực hiện Trò chơi của Google dịch vụ vào trò chơi khác nhưng nó mang lại một số lỗi:BaseGameUtils Lỗi không xác định, onConnectionFailed: kết quả 4

06-06 12:30:46.353: D/BaseGameActivity(7982): isGooglePlayServicesAvailable returned 0 
06-06 12:30:46.353: D/BaseGameActivity(7982): beginUserInitiatedSignIn: starting new sign-in flow. 
06-06 12:30:46.416: D/BaseGameActivity(7982): Connecting GamesClient. 
06-06 12:30:46.424: D/BaseGameActivity(7982): onStart. 
06-06 12:30:46.424: D/BaseGameActivity(7982): onStart: connecting clients. 
06-06 12:30:46.424: D/BaseGameActivity(7982): Connecting GamesClient. 
06-06 12:30:46.424: E/GmsClient(7982): Calling connect() while still connected, missing disconnect(). 
06-06 12:30:46.713: D/BaseGameActivity(7982): onConnectionFailed: result 4 
06-06 12:30:46.713: D/BaseGameActivity(7982): onConnectionFailed: since user initiated sign-in, trying to resolve problem. 
06-06 12:30:46.713: D/BaseGameActivity(7982): resolveConnectionResult: trying to resolve result: ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{41692200: [email protected]}} 
06-06 12:30:46.713: D/BaseGameActivity(7982): result has resolution. Starting it. 

06-06 12:30:46.900: D/BaseGameActivity(7982): onActivityResult, req 9001 response 0 
06-06 12:30:46.900: D/BaseGameActivity(7982): responseCode != RESULT_OK, so not reconnecting. 
06-06 12:30:46.900: D/BaseGameActivity(7982): giveUp: giving up on connection. Status code: 4 
06-06 12:30:46.900: D/BaseGameActivity(7982): Making error dialog for error: 4 

com.google.android.gms ghi lại lỗi sau:

E/SignInActivity(7432): SignInActivity must be started with startActivityForResult 

Những gì tôi đã làm:

  • Tôi đã định cấu hình chính xác phía Bảng điều khiển dành cho nhà phát triển. SHA1 là chính xác (khớp với kho khóa androiddebug).
  • Trong giao diện điều khiển API, mọi thứ đều ổn.
  • Tôi đã mở rộng GameBaseActivity và triển khai các giao diện được yêu cầu.
  • Tôi có thư mục ids.xml trong thư mục giá trị khớp với thư mục trong Bảng điều khiển dành cho nhà phát triển.
  • Tôi đã ghi đè các phương thức được yêu cầu, bao gồm trênActivityResult()
  • Tệp kê khai cũng OK, bao gồm siêu dữ liệu được yêu cầu.

  • Đây là mã tôi sử dụng để đăng nhập vào onCreate:

    setSignInMessages("SIGNING IN", "SIGNING OUT"); 
    beginUserInitiatedSignIn(); 
    

Khi thử nghiệm ví dụ Nút Clicker 2000, tôi đã có lỗi Unknown quá và cố định nó cấu hình bảng điều khiển một cách chính xác. Bảng điều khiển trò chơi hiện tại cũng được định cấu hình chính xác, vì vậy tôi thực sự không biết điều gì đang xảy ra. Tôi đang thiếu gì?

EDIT:

  • Tôi cũng đã cố gắng unwrapping BaseGameActivity và thực hiện GameHelper trực tiếp trong Hoạt động chính của tôi.
  • Tôi đã thử xuất bản cài đặt trò chơi ứng dụng (vì trò chơi này đã được xuất bản trên Cửa hàng Play). Đã liên kết ứng dụng khác với khóa SHA1 ký xuất bản của tôi. Được cài đặt làm ứng dụng chính để cài đặt. Vẫn không có may mắn.

Trả lời

0

Lỗi này là rất rõ ràng:

E/SignInActivity(): SignInActivity must be started with startActivityForResult 

Điều này có nghĩa rằng SignInActivity đang được bắt đầu với startActivity thay vì startActivityForResult.

Tìm kiếm nơi hoạt động này đang được bắt đầu và thay đổi thành startActivityForResult. Nếu bạn đăng một số mã tôi sẽ có thể giúp đỡ nhiều hơn nữa!

+0

Tôi chỉ có một hoạt động không phải là SignInActivity. Trên thực tế SignInActivity không hiển thị ở bất cứ đâu ngay cả trong dự án GameBaseUtils. –

1

Điều đó thật kỳ lạ. Lỗi bạn đã có, tùy thuộc vào bản ghi BaseGameActivity của bạn không nên xảy ra.

Đăng nhậpTính năng thực sự không hiển thị trong mã, kể từ khi bạn bắt đầu bằng cách gọi GameHelper.resolveConnectionResult sẽ gọi mConnectionResult.startResolutionForResult(mActivity, RC_RESOLVE). Đó là mConnectionResult có mục đích sẽ khởi chạy SignInActivity. Và các bản ghi của BaseGameActivity đang nói rằng bạn đang khởi động nó đúng cách, do đó, ngoại trừ nếu bạn đã thực hiện một số thay đổi trong BaseGameActivity và GameHelper, lỗi này là lạ.

Bạn đang tìm kiếm lỗi ở đâu? Trong bộ lọc gói của bạn? Thông tin hữu ích được hiển thị trong LogCat, nhưng không có trong bộ lọc ứng dụng của bạn. Tìm kiếm tất cả các tin nhắn không có bộ lọc, trong LogCat, và tìm kiếm các thẻ Volley và GameAgent. Nó có thể cho bạn thấy một số lỗi.

Một điều nữa: hộp thoại Đăng nhập có hiển thị không? Khi nào thì lỗi SignInActivity được hiển thị (dấu thời gian)?

+0

GameHelper và BaseGameActivity không bị ảnh hưởng. Tôi không lọc nhật ký theo tên gói (Tất cả thông báo được hiển thị) .Bất cứ thông báo nào không có thông báo Volley hoặc GameAgent được hiển thị. Nếu điều này có thể giúp đỡ, tôi đang cố gắng để thực hiện nó trong một dự án xuất khẩu Shiva3D (mà vẫn là một dự án Eclipse eclipse). –

+0

Đầu tiên được hiển thị hộp thoại tiến trình "đăng nhập", sau đó hộp thoại "Lỗi không xác định". –

0

theo lỗi của bạn, bạn đang kết nối trò chơi hai lần (có thể trong oncreate của bạn?) Và nó trả về trạng thái lỗi 4. Bạn không đưa ra mã nhưng tôi chắc chắn rằng tôi biết vấn đề của bạn là gì. Bạn có thể đang làm hỏng đăng nhập google bằng GamesClient.connect Đợi tài khoản google đăng nhập trước khi kết nối gamesclient. Tôi đã làm

public void onSignInSucceeded() {  
      mGamesClient.connect();} 

Bạn có thể tạo đối tượng GamesClient trong onCreate, nhưng kết nối được đặt tốt hơn trong phương pháp này tôi đã cung cấp cho bạn. Tôi đã mất nhiều giờ với vấn đề này, tôi hy vọng tôi có thể giúp

0

Vấn đề:

ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{#: [email protected]#}}

giải quyết bằng cách:

@Override 
public void onConnectionFailed(ConnectionResult arg0) { 
    <Your Code...> 

    try { 
     arg0.startResolutionForResult(this, 9001); 
    } catch (SendIntentException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

} 

Đây chỉ là một cuộc biểu tình thô, xử lý các ConnectionResult như google đề nghị.

để biết thêm thông tin Click Here