Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我只是尝试使用其他活动的onActivitiResult_Android - Fatal编程技术网

Android 我只是尝试使用其他活动的onActivitiResult

Android 我只是尝试使用其他活动的onActivitiResult,android,Android,谷歌登录连接错误 Android代码 public class GooglePlusPlugin implements ConnectionCallbacks, OnConnectionFailedListener{ Activity resultactivity; private Activity activity;// activity is Unity3D currentActivity public void init(String objName, String Callba

谷歌登录连接错误

Android代码

 public class GooglePlusPlugin implements ConnectionCallbacks,
 OnConnectionFailedListener{
 Activity resultactivity;
 private Activity activity;// activity is Unity3D currentActivity
 public void init(String objName, String CallbackName) {

    callbackName = CallbackName;
    unityObjectName = objName;
    mApiClient = new GoogleApiClient.Builder(activity, this, this)
            .addApi(Plus.API).addScope(Plus.SCOPE_PLUS_LOGIN)
            .addScope(Plus.SCOPE_PLUS_PROFILE).build();

    activity.runOnUiThread(new Runnable() {

        @Override
        public void run() {
            resultactivity = new ResultActivity();
            mConnectionProgressDialog = new ProgressDialog(activity);
            mConnectionProgressDialog.setMessage("Signing in...");
        }
    });
}
 @Override
 public void onConnectionFailed(final ConnectionResult result) {
    if (!mConnectionProgressDialog.isShowing()) {
        if (result.hasResolution()) {
            try {
                result.startResolutionForResult(resultactivity,
                result.getErrorCode());
                return;
            } catch (SendIntentException e) {
                mApiClient.connect();
            }
        }
    }
}
}
startResolutionForResult调用onActivityResult

我尝试使用onActivityResult其他活动,因为它不会扩展GooglePlusPlugin中的活动

public class ResultActivity extends FragmentActivity
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQUEST_CODE_RESOLVE_ERR
            && resultCode == RESULT_OK) {
        GooglePlusPlugin.getInstance().reconnect(requestCode, resultCode);
        finish();
    }
}
但是失败了

错误是

Caused by: java.lang.NullPointerException
at android.app.Activity.startIntentSenderForResultInner(Activity.java:3560)
at android.app.Activity.startIntentSenderForResult(Activity.java:3536)
at android.app.Activity.startIntentSenderForResult(Activity.java:3503)
at com.google.android.gms.common.ConnectionResult.startResolutionForResult(Unknown Source)
at kr.co.crooz.plugin.googleplus.GooglePlusPlugin.onConnectionFailed(GooglePlusPlugin.java:212)
为什么startinentsenderforresult需要,我不知道如何使用它。 如何解决

感谢阅读长代码

私人活动;活动已从另一个部分获取

我喜欢长内容。不是的部分

 try {
        this.unityPlayerClass = Class
                .forName("com.unity3d.player.UnityPlayer");
        this.unityPlayerActivityField = this.unityPlayerClass
                .getField("currentActivity");
        this.unitySendMessageMethod = this.unityPlayerClass.getMethod(
                "UnitySendMessage", new Class[] { String.class,
                        String.class, String.class });

        this.activity = getActivity();
    }

private Activity getActivity() {
    if (this.unityPlayerActivityField != null) {
        try {
            Activity activity = (Activity) this.unityPlayerActivityField
                    .get(this.unityPlayerClass);
            if (activity == null) {
                Log.d(TAG,
                        "Something has gone terribly wrong. The Unity Activity does not exist. This could be due to a low memory situation");
            }
            return activity;
        } catch (Exception e) {
            Log.d(TAG, "error getting currentActivity: " + e.getMessage());
        }
    }

    return this.activity;
}
您的活动为空

private Activity activity;// activity is Unity3D currentActivity

您在此处声明它,但从未像我猜您尝试的那样从unity3D抓取活动,这将导致您的活动为null,并将抛出nullpointerexeption

很抱歉混淆,并且已在初始化函数中。修正后。增加了Unity玩家活动获取部分。