Android 无法初始化Google Play服务
这是我第一次尝试使用Google Play服务 我添加了google play服务库和BaseGameUtils库。我将我的类更改为扩展BaseGameActivity 代码如下:Android 无法初始化Google Play服务,android,eclipse,google-play-services,Android,Eclipse,Google Play Services,这是我第一次尝试使用Google Play服务 我添加了google play服务库和BaseGameUtils库。我将我的类更改为扩展BaseGameActivity 代码如下: public class MainActivity extends BaseGameActivity implements View.OnClickListener { Button skipBut; View signInBut; @Override protected voi
public class MainActivity extends BaseGameActivity implements View.OnClickListener {
Button skipBut;
View signInBut;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
skipBut = (Button) findViewById(R.id.justPlay);
signInBut = (View) findViewById(R.id.sign_in_button);
skipBut.setOnClickListener(this);
signInBut.setOnClickListener(this);
}
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
if(view.getId() == R.id.sign_in_button){
beginUserInitiatedSignIn();
}
else if(view.getId() == R.id.justPlay){
// play without sign in .... code ....
}
}
@Override
public void onSignInFailed() {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "fail", Toast.LENGTH_SHORT).show();
}
@Override
public void onSignInSucceeded() {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "success", Toast.LENGTH_SHORT).show();
}
}
但我的应用程序正在崩溃。我不知道为什么。
注意:我还将app ID作为app_ID添加到清单和字符串中
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data android:name="com.google.android.gms.games.*****id****"
android:value="@string/app_id" />
更新
我尝试过使用game helper,但没有扩展到GameBaseActivity,如中所述
但仍然崩溃了:遵循以下步骤
您需要将一些java代码添加到onCreate中,并尝试按照右栏中的步骤逐一操作
// Java code required.
// testDevices and loadAdOnCreate attributes are
// no longer available.
AdView adView = (AdView)this.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("TEST_DEVICE_ID")
.build();
adView.loadAd(adRequest);
这可能有一些用处:这是GameHelper类,我正在使用它作为库。你想告诉我什么@2Dee您指定的logcat不包含任何错误,因此确定问题可能是什么有点困难。使用包含错误的副本(即应用程序崩溃的地方)更新logcat,该副本将以e作为前缀。还请注意,当您扩展BaseGameActivity时,登录将在onStart中自动调用,因此您的按钮将无法按预期工作。如果要使用这些按钮,可以在onCreate中设置mConnectOnStart=false,也可以不扩展GameBaseActivity。仍然没有回答你的问题,只是提醒一下。是我错了还是这个链接是为了说明如何使用横幅和/或广告@用户1283633
public class MainActivity extends ActionBarActivity implements View.OnClickListener {
Button skipBut;
View signInBut;
GameHelper mHelper;
boolean mExplicitSignOut = false;
boolean mInSignInFlow = false;
GoogleApiClient mClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setContentView(R.layout.activity_main);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
skipBut = (Button) findViewById(R.id.justPlay);
signInBut = (View) findViewById(R.id.sign_in_button);
skipBut.setOnClickListener(this);
signInBut.setOnClickListener(this);
GoogleApiClient.Builder builder = new GoogleApiClient.Builder(this);
builder.addApi(Games.API)
.addApi(Plus.API)
.addApi(AppStateManager.API)
.addScope(Games.SCOPE_GAMES)
.addScope(Plus.SCOPE_PLUS_LOGIN)
.addScope(AppStateManager.SCOPE_APP_STATE);
mClient = builder.build();
mHelper = new GameHelper(this, GameHelper.CLIENT_ALL);
GameHelperListener listener = new GameHelper.GameHelperListener() {
@Override
public void onSignInSucceeded() {
// handle sign-in succeess
}
@Override
public void onSignInFailed() {
// handle sign-in failure (e.g. show Sign In button)
}
};
mHelper.setup(listener);
}
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
if(view.getId() == R.id.sign_in_button){
mHelper.beginUserInitiatedSignIn();
}
else if(view.getId() == R.id.justPlay){
// skipp sign in
}
}
}
// Java code required.
// testDevices and loadAdOnCreate attributes are
// no longer available.
AdView adView = (AdView)this.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("TEST_DEVICE_ID")
.build();
adView.loadAd(adRequest);