Pointers 谷歌+;android中的登录按钮。这些是我的java文件和错误日志
JAVA:Pointers 谷歌+;android中的登录按钮。这些是我的java文件和错误日志,pointers,exception,null,Pointers,Exception,Null,JAVA: package com.example.api_test; import android.app.Activity; import android.content.Intent; import android.content.IntentSender.SendIntentException; import android.os.Bundle; import android.view.View; import android.v
package com.example.api_test;
import android.app.Activity;
import android.content.Intent;
import android.content.IntentSender.SendIntentException;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks;
import com.google.android.gms.plus.Plus;
public class MainActivity extends Activity implements OnClickListener,ConnectionCallbacks, OnConnectionFailedListener{
Button bSignIn;
private static final int RC_SIGN_IN=1;
private GoogleApiClient mGoogleApiClient;
private boolean mIntentInProgress, mSignInClicked;
private ConnectionResult mConnectionResult;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addApi(Plus.API)
.addScope(Plus.SCOPE_PLUS_LOGIN)
.build();
bSignIn = (Button)findViewById(R.id.sign_in_button);
bSignIn.setOnClickListener(this);
}
@Override
public void onClick(View view) {
if (view.getId() == R.id.sign_in_button
&& !mGoogleApiClient.isConnecting()) {
mSignInClicked = true;
resolveSignInError();
}
}
protected void onStart(){
super.onStart();
mGoogleApiClient.connect();
}
private void resolveSignInError() {
if (mConnectionResult.hasResolution() && mGoogleApiClient != null) {
try {
mIntentInProgress = true;
startIntentSenderForResult(mConnectionResult.getResolution().getIntentSender(),
RC_SIGN_IN, null, 0, 0, 0);
} catch (SendIntentException e) {
mIntentInProgress = false;
mGoogleApiClient.connect();
}
}
}
protected void onStop(){
super.onStop();
if (mGoogleApiClient.isConnected()){
mGoogleApiClient.disconnect();
}
}
@Override
public void onConnectionFailed(ConnectionResult result) {
if (!mIntentInProgress && result.hasResolution()){
try{
mIntentInProgress = true;
startIntentSenderForResult(result.getResolution().getIntentSender(), RC_SIGN_IN ,null ,0 ,0 , 0);
} catch (SendIntentException e){
mIntentInProgress =false;
mGoogleApiClient.connect();
}
}
if (mSignInClicked){
resolveSignInError();
}
}
@Override
public void onConnected(Bundle connectionHint) {
mSignInClicked = false;
Toast.makeText(this, "User is connected!", Toast.LENGTH_LONG).show();
}
@Override
public void onConnectionSuspended(int cause) {
mGoogleApiClient.connect();
}
protected void onActivityResult(int requestCode, int responseCode, Intent intent){
if (requestCode == RC_SIGN_IN){
if (responseCode != RESULT_OK){
mSignInClicked = false;
}
mIntentInProgress = false ;
if (!mGoogleApiClient.isConnecting()){
mGoogleApiClient.connect();
}
}
}
}
07-26 18:39:18.940: E/AndroidRuntime(888): FATAL EXCEPTION: main
错误日志:
package com.example.api_test;
import android.app.Activity;
import android.content.Intent;
import android.content.IntentSender.SendIntentException;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks;
import com.google.android.gms.plus.Plus;
public class MainActivity extends Activity implements OnClickListener,ConnectionCallbacks, OnConnectionFailedListener{
Button bSignIn;
private static final int RC_SIGN_IN=1;
private GoogleApiClient mGoogleApiClient;
private boolean mIntentInProgress, mSignInClicked;
private ConnectionResult mConnectionResult;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addApi(Plus.API)
.addScope(Plus.SCOPE_PLUS_LOGIN)
.build();
bSignIn = (Button)findViewById(R.id.sign_in_button);
bSignIn.setOnClickListener(this);
}
@Override
public void onClick(View view) {
if (view.getId() == R.id.sign_in_button
&& !mGoogleApiClient.isConnecting()) {
mSignInClicked = true;
resolveSignInError();
}
}
protected void onStart(){
super.onStart();
mGoogleApiClient.connect();
}
private void resolveSignInError() {
if (mConnectionResult.hasResolution() && mGoogleApiClient != null) {
try {
mIntentInProgress = true;
startIntentSenderForResult(mConnectionResult.getResolution().getIntentSender(),
RC_SIGN_IN, null, 0, 0, 0);
} catch (SendIntentException e) {
mIntentInProgress = false;
mGoogleApiClient.connect();
}
}
}
protected void onStop(){
super.onStop();
if (mGoogleApiClient.isConnected()){
mGoogleApiClient.disconnect();
}
}
@Override
public void onConnectionFailed(ConnectionResult result) {
if (!mIntentInProgress && result.hasResolution()){
try{
mIntentInProgress = true;
startIntentSenderForResult(result.getResolution().getIntentSender(), RC_SIGN_IN ,null ,0 ,0 , 0);
} catch (SendIntentException e){
mIntentInProgress =false;
mGoogleApiClient.connect();
}
}
if (mSignInClicked){
resolveSignInError();
}
}
@Override
public void onConnected(Bundle connectionHint) {
mSignInClicked = false;
Toast.makeText(this, "User is connected!", Toast.LENGTH_LONG).show();
}
@Override
public void onConnectionSuspended(int cause) {
mGoogleApiClient.connect();
}
protected void onActivityResult(int requestCode, int responseCode, Intent intent){
if (requestCode == RC_SIGN_IN){
if (responseCode != RESULT_OK){
mSignInClicked = false;
}
mIntentInProgress = false ;
if (!mGoogleApiClient.isConnecting()){
mGoogleApiClient.connect();
}
}
}
}
07-26 18:39:18.940: E/AndroidRuntime(888): FATAL EXCEPTION: main
07-26 18:39:18.940:E/AndroidRuntime(888):进程:com.example.api_测试,PID:888
07-26 18:39:18.940:E/AndroidRuntime(888):java.lang.NullPointerException
07-26 18:39:18.940:E/AndroidRuntime(888):在com.example.api_test.MainActivity.ResolveSignError(MainActivity.java:61)
07-26 18:39:18.940:E/AndroidRuntime(888):在com.example.api_test.MainActivity.onClick(MainActivity.java:50)上
07-26 18:39:18.940:E/AndroidRuntime(888):在android.view.view.performClick(view.java:4438)
07-26 18:39:18.940:E/AndroidRuntime(888):在android.view.view$PerformClick.run(view.java:18422)
07-26 18:39:18.940:E/AndroidRuntime(888):在android.os.Handler.handleCallback(Handler.java:733)上
07-26 18:39:18.940:E/AndroidRuntime(888):位于android.os.Handler.dispatchMessage(Handler.java:95)
07-26 18:39:18.940:E/AndroidRuntime(888):在android.os.Looper.loop(Looper.java:136)上
07-26 18:39:18.940:E/AndroidRuntime(888):位于android.app.ActivityThread.main(ActivityThread.java:5017)
07-26 18:39:18.940:E/AndroidRuntime(888):位于java.lang.reflect.Method.Invokenactive(本机方法)
07-26 18:39:18.940:E/AndroidRuntime(888):在java.lang.reflect.Method.invoke(Method.java:515)
07-26 18:39:18.940:E/AndroidRuntime(888):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
07-26 18:39:18.940:E/AndroidRuntime(888):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
07-26 18:39:18.940:E/AndroidRuntime(888):在dalvik.system.NativeStart.main(本机方法)看来您还没有将变量
MConnectionResult
初始化为任何内容,在第61行您得到了一个空指针异常。您试图实现什么,什么时候出现此错误?