Android この公式のGoogleドキュメント を使用して、Google +を組み込んでいます。以下の手順を実行した後:
Package.Name
_および_Sha1
_を提供して、Google + APIを有効にします。次に、サンプル app を構成し、それにgoogle-play-services_lib(imported)を添付します。アプリを実行すると、MainActivityで例外が発生します
_mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Plus.API, null) // here the exception (nullPointerException)
.addScope(Plus.SCOPE_PLUS_LOGIN).build();
_
物理デバイスで実行していますAndroid 4.1.2.
グーグルを通過しましたが、運はありませんでした。
LogCat:
05-27 10:23:46.808: D/ActivityThread(11136): setTargetHeapUtilization:0.25 05-27 10:23:46.808: D/ActivityThread(11136): setTargetHeapIdealFree:8388608 05-27 10:23:46.808: D/ActivityThread(11136): setTargetHeapConcurrentStart:2097152 05-27 10:23:47.228: D/AndroidRuntime(11136): Shutting down VM 05-27 10:23:47.228: W/dalvikvm(11136): threadid=1: thread exiting with uncaught exception (group=0x411eb438) 05-27 10:23:47.228: E/AndroidRuntime(11136): FATAL EXCEPTION: main 05-27 10:23:47.228: E/AndroidRuntime(11136): Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mygoogleplus/com.example.mygoogleplus.GooglePlusMainActivity}: Java.lang.NullPointerException: Null options are not permitted for this Api 05-27 10:23:47.228: E/AndroidRuntime(11136): at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2114) 05-27 10:23:47.228: E/AndroidRuntime(11136): at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2139) 05-27 10:23:47.228: E/AndroidRuntime(11136): at Android.app.ActivityThread.access$700(ActivityThread.Java:143) 05-27 10:23:47.228: E/AndroidRuntime(11136): at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1241) 05-27 10:23:47.228: E/AndroidRuntime(11136): at Android.os.Handler.dispatchMessage(Handler.Java:99) 05-27 10:23:47.228: E/AndroidRuntime(11136): at Android.os.Looper.loop(Looper.Java:137) 05-27 10:23:47.228: E/AndroidRuntime(11136): at Android.app.ActivityThread.main(ActivityThread.Java:4960) 05-27 10:23:47.228: E/AndroidRuntime(11136): at Java.lang.reflect.Method.invokeNative(Native Method) 05-27 10:23:47.228: E/AndroidRuntime(11136): at Java.lang.reflect.Method.invoke(Method.Java:511) 05-27 10:23:47.228: E/AndroidRuntime(11136): at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:1038) 05-27 10:23:47.228: E/AndroidRuntime(11136): at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:805) 05-27 10:23:47.228: E/AndroidRuntime(11136): at dalvik.system.NativeStart.main(Native Method) 05-27 10:23:47.228: E/AndroidRuntime(11136): Caused by: Java.lang.NullPointerException: Null options are not permitted for this Api 05-27 10:23:47.228: E/AndroidRuntime(11136): at com.google.Android.gms.internal.fq.b(Unknown Source) 05-27 10:23:47.228: E/AndroidRuntime(11136): at com.google.Android.gms.common.api.GoogleApiClient$Builder.addApi(Unknown Source) 05-27 10:23:47.228: E/AndroidRuntime(11136): at com.example.mygoogleplus.GooglePlusMainActivity.onCreate(GooglePlusMainActivity.Java:89) 05-27 10:23:47.228: E/AndroidRuntime(11136): at Android.app.Activity.performCreate(Activity.Java:5203) 05-27 10:23:47.228: E/AndroidRuntime(11136): at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1094) 05-27 10:23:47.228: E/AndroidRuntime(11136): at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2078)
以下は私のために働いています。
この方法で単一のパラメーターを渡すだけです。
.addApi(Plus.API)
の代わりに
.addApi(Plus.API, null)
[〜#〜]または[〜#〜]
plusOptionsオブジェクトを渡すこともできます
.addApi(Plus.API, Plus.PlusOptions.builder().build())
これらのソリューションはどちらも機能します。
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Plus.API)
.addScope(Plus.SCOPE_PLUS_LOGIN)
.build();
それは私のために働いた。 mGoogleApiClientはGoogleApiClientのオブジェクトです。 addApi()にパラメーターを1つだけ渡します。お気に入り
.addApi(Plus.API)
そのAPIのオプションを作成する必要があります
.addApi(Plus.API, PlusOptions.builder().build())
GameHelperを使用する場合-セットアップの前にsetPlusApiOptionsを呼び出す必要があります。
// Google Play Services
m_GameHelper = new GameHelper(this, GameHelper.CLIENT_GAMES | GameHelper.CLIENT_PLUS);
m_GameHelper.setPlusApiOptions( PlusOptions.builder().build() );
m_GameHelper.setup(this);