从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