從Eclipse遷移到Android Studio後,我一直在努力。問題是你可以找到的大多數指南和教程都是針對Eclipse的,但是如果你能找到一個適用於Android Studio的指南和教程,它會丟失最重要的部分 - 實現庫或第三方代碼。這裏的問題和錯誤周後是一個指導libGDX - Android Studio中的Google Play遊戲服務
回答
要求:谷歌(在SDK管理器附加功能下)發揮服務和谷歌Repostory,BaseGameUtils
然後選擇Import Gradle Project並選擇BaseGameUtil文件夾(在該步驟之前不要複製BaseGameUtils,讓Android Studio執行此操作) Gradle完成同步選擇後Build> Make Module'BaseGameUtils'
注意如果你有使用sdk:minSdkVersion錯誤,而建立檢查這click here。構建:後再次BaseGameUtils這
爲integranting BaseGameUtils最後一步是把它列入到機器人模塊: 同步項目之後。
注意如果你使用-SDK:的minSdkVersion錯誤,而建設,這將幫助 - link
現在是時候打開你的AndroidManifest文件,包括:
前應用標籤
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
注意:有沒有必要添加谷歌播放依賴關係becouse它的Android gradle這個腳本已經包含在BaseGameUtils
在應用,以前活動
<meta-data android:name="com.google.android.gms.games.APP_ID"
android:value="@string/app_id" />
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
現在你需要設置Srtings(安卓/ RES APP_ID數/值/字符串。XML)
<string name="app_id">928019648708</string>
應用ID位於GOOGLEPLAY開發者控制檯下游戲服務部(下游戲名)
針對通過Android原生代碼,遊戲代碼,我們將核心模塊中創建ActionResolver接口:
package com.mygame.test;
public interface ActionResolver {
public boolean getSignedInGPGS();
public void loginGPGS();
public void submitScoreGPGS(int score, String id);
public void unlockAchievementGPGS(String achievementId);
public void getLeaderboardGPGS();
public void getAchievementsGPGS();
}
現在,我們需要(如果你有問題,檢查進口),以使AndroidLauncher類的變化:
package com.mygame.test.android;
import android.os.Bundle;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
import com.google.android.gms.games.Games;
import com.google.example.games.basegameutils.GameHelper;
import com.mygame.test.ActionResolver;
import com.mygame.test.MyGame;
public class AndroidLauncher extends AndroidApplication implements ActionResolver, GameHelper.GameHelperListener {
private GameHelper gameHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (gameHelper == null) {
gameHelper = new GameHelper(this, GameHelper.CLIENT_GAMES);
gameHelper.enableDebugLog(true);
}
gameHelper.setup(this);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
initialize(new MyGame(this), config);
}
@Override
public boolean getSignedInGPGS() {
return gameHelper.isSignedIn();
}
@Override
public void loginGPGS() {
if (!gameHelper.isSignedIn()) {
try {
runOnUiThread(new Runnable() {
public void run() {
gameHelper.beginUserInitiatedSignIn();
}
});
} catch (final Exception ex) {
Gdx.app.log("MainActivity", "Log in failed: " + ex.getMessage() + ".");
}
} else {
gameHelper.reconnectClient();
}
}
@Override
public void submitScoreGPGS(int score, String id) {
Games.Leaderboards.submitScore(gameHelper.getApiClient(), id, score);
}
@Override
public void unlockAchievementGPGS(String achievementId) {
Games.Achievements.unlock(gameHelper.getApiClient(), achievementId);
}
@Override
public void getLeaderboardGPGS() {
if (gameHelper.isSignedIn()) {
startActivityForResult(Games.Leaderboards.getLeaderboardIntent(gameHelper.getApiClient(), "CgkI5MyZk4FbHAJQXQ"), 100);
} else if (!gameHelper.isConnecting()) {
loginGPGS();
}
}
@Override
public void getAchievementsGPGS() {
if (gameHelper.isSignedIn()) {
startActivityForResult(Games.Achievements.getAchievementsIntent(gameHelper.getApiClient()), 101);
} else if (!gameHelper.isConnecting()) {
loginGPGS();
}
}
@Override
public void onSignInFailed() {
gameHelper.getSignInError();
}
@Override
public void onSignInSucceeded() {
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
gameHelper.onActivityResult(requestCode, resultCode, data);
}
}
在主類(在這個例子中MyGame)創建構造函數:
public ActionResolver resolver;
public Base(ActionResolver ar) {
resolver = ar;
}
連接與gplay服務電話:
if (!resolver.getSignedInGPGS())
resolver.loginGPGS();
解鎖成就,並提交成績:
if (resolver.getSignedInGPGS()){
if (currentScore == 0){
resolver.unlockAchievementGPGS("CgkI5MyZk4EbEAIQAg");
}
if (Cookie.bestScore >= 100){
resolver.unlockAchievementGPGS("CgkI5MyZk4EbEAIQAw");
}
resolver.submitScoreGPGS(Cookie.bestScore, "CgkI5MyZk4EbEAIQAQ");
}
注意:在開發者控制檯中使用相應的id值,用於每個成就和leaderbord
,並呼籲(用於桌面快速啓動爲例)排行榜和成就與
resolver.getLeaderboardGPGS();
resolver.getAchievementsGPGS();
最後桌面,iOS和HTML發射器可以以同樣的方式來解決
public static void main (String[] arg) {
LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
ActionResolver resolver= new ActionResolver() {
@Override
public boolean getSignedInGPGS() {
return false;
}
@Override
public void loginGPGS() {
}
@Override
public void submitScoreGPGS(int score, String id) {
}
@Override
public void unlockAchievementGPGS(String achievementId) {
}
@Override
public void getLeaderboardGPGS() {
}
@Override
public void getAchievementsGPGS() {
}
};
new LwjglApplication(new MyGame(resolver), config);
}
謝謝你。我試着解決這個問題。所有的教程都是針對Eclipse的。不知何故,我解決了這個問題。這將在未來幫助很多人。我跟着[官方文檔](https://github.com/libgdx/libgdx/wiki/Google-Play-Game-Services-in-LibGDX),但作爲一個新手很混亂。 – WeirdElfB0y
Np,我知道。您literaly必須收集信息,多個站點,並希望它會成功 – raco
你忘記了'@覆蓋 \t保護無效onActivityResult(INT requestCode,INT resultCode爲,意圖數據){ \t \t super.onActivityResult(requestCode,resultCode爲,數據); \t \t gameHelper.onActivityResult(requestCode,resultCode,data); \t}'在AndroidLauncher中。 –
- 1. Android Google Play遊戲服務
- 2. 在Android遊戲中配置不當的Google Play遊戲服務
- 3. Google Play遊戲服務多人遊戲iOS和Android
- 4. Google Play遊戲服務在中國?
- 5. Google Play商店錯誤libgdx遊戲
- 6. Google Play遊戲服務BaseGameUtils錯誤
- 7. Google Play遊戲服務createAutoMatchCriteria MIN_OPPONENTS> 1
- 8. Android Studio LibGDX遊戲問題
- 9. Google Play遊戲服務註銷回調
- 10. Android和iOS可以將Google Play遊戲服務實時多人遊戲整合到LibGDX中嗎?
- 11. 我的Android遊戲中Google Play服務無法正常工作
- 12. 在Android遊戲中簡化Facebook和Google Play遊戲服務集成
- 13. Google Play遊戲服務實時多人遊戲
- 14. 登錄Google Play遊戲服務後遊戲崩潰
- 15. Google Play遊戲服務| ShowSelectSavedGameUI統一的Android
- 16. Android。 Google Play服務已保存的遊戲API
- 17. 同時使用AdMob和Google Play遊戲服務時出錯
- 18. Google帳戶是否需要Google Play遊戲服務?
- 19. 合併libgdx遊戲與android studio項目
- 20. Unity Admob和Google Play遊戲服務集成
- 21. Google Play服務|雲存儲遊戲|獲取朋友的遊戲狀態
- 22. Android Studio with Google Play:Google Play服務缺失
- 23. Android Studio - Google Play服務錯誤
- 24. Google Play遊戲服務C++ SDK找不到NativeSdkEntryPoints java類
- 25. Google Play遊戲服務 - 測試排行榜/成就
- 26. Google Play遊戲服務可以用於PC遊戲嗎? (Windows/Linux/OSX)
- 27. 使用一個帳戶測試Google Play遊戲服務多人遊戲
- 28. Firebase + Google遊戲服務
- 29. Google Play遊戲服務 - 登錄失敗(OAUTH2:UNREGISTERED_ON_API_CONSOLE)
- 30. Google Play遊戲服務 - 使用AutoMatch的玩家人數最多
無意冒犯,但你應該將答案作爲教程發佈到您的網站,博客或其他地方,但不是這樣的。 –
我知道它會更好,但我沒有一個頁面。最後,如果我用這個保存任何人幾個小時沒關係 – raco