2017-05-02 5 views
2

私はGoogleマップで作業していて、githubプロジェクトを実行しようとしています:「現在の場所を選択し、地図上に詳細を表示」this is the link。しかし、私はプロジェクトを実行しているときに、 "PlaceLikelihoodBuffer"にヌルポインタ例外をスローします。 nullが返されるコードブロックは次のとおりです。PlaceLikelihoodBufferがnullです

PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi 
       .getCurrentPlace(mGoogleApiClient, null); 

     result.setResultCallback(new ResultCallback<PlaceLikelihoodBuffer>() { 
      @Override 
      public void onResult(@NonNull PlaceLikelihoodBuffer likelyPlaces) { 
       int i = 0; 
       if (!likelyPlaces.getStatus().isSuccess()) { 
        // Request did not complete successfully 
        Toast.makeText(MapsMarkerActivity.this, "Request did not complete successfully", Toast.LENGTH_SHORT).show(); 
        likelyPlaces.release(); 
        return; 
       } 
       mLikelyPlaceNames = new String[mMaxEntries]; 
       mLikelyPlaceAddresses = new String[mMaxEntries]; 
       mLikelyPlaceAttributions = new String[mMaxEntries]; 
       mLikelyPlaceLatLngs = new LatLng[mMaxEntries]; 
       Log.e("result",likelyPlaces.toString()); 
       for (PlaceLikelihood placeLikelihood : likelyPlaces) { 
        // Build a list of likely places to show the user. Max 5. 
        mLikelyPlaceNames[i] = (String) placeLikelihood.getPlace().getName(); 
        mLikelyPlaceAddresses[i] = (String) placeLikelihood.getPlace().getAddress(); 
        mLikelyPlaceAttributions[i] = (String) placeLikelihood.getPlace() 
          .getAttributions(); 
        mLikelyPlaceLatLngs[i] = placeLikelihood.getPlace().getLatLng(); 

        i++; 
        if (i > (mMaxEntries - 1)) { 
         break; 
        } 
       } 
       // Release the place likelihood buffer, to avoid memory leaks. 
       likelyPlaces.release(); 

       // Show a dialog offering the user the list of likely places, and add a 
       // marker at the selected place. 
       openPlacesDialog(); 
      } 
     }); 

実際は上記のコードの可能性が高い場所はnullです。私は、likelyPlacesがnullである理由とこのエラーを解決する方法を尋ねたいと思います。 PlaceLikelihoodBuffer {ステータス=ステータス{からstatusCode = ERROR、解像度= NULL}、帰属= NULL}

UPDATE

これらはログ

E /結果を詳述しています

E/AndroidRuntime: FATAL EXCEPTION: main 
              java.lang.NullPointerException 
               at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394) 
               at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362) 
               at android.widget.AbsListView.obtainView(AbsListView.java:2177) 
               at android.widget.ListView.measureHeightOfChildren(ListView.java:1247) 
               at android.widget.ListView.onMeasure(ListView.java:1159) 
               at android.view.View.measure(View.java:15848) 
               at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5012) 
               at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
               at android.view.View.measure(View.java:15848) 

(android.view.ViewGroup.measureChildWithMargins( ViewGroup.java:5012)android.widget.LinearLayout.onMeasureでandroid.widget.LinearLayout.measureVertical(LinearLayout.java:695) でandroid.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) で(のLinearLayout。 java:588) android.view.View.measure(View.java:15848) (android.view.View.View.Map)で、 を表示します。FrameLayout.java: 310) android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135) android.view.View.measure(View.java:15848) at android.view.ViewGroup.measureChildWithMargin (ViewGroup.java:5012) とandroid.widget.FrameLayout.onMeasure(FrameLayout.java:310) at android.view.View.measure(View.java:15848) at android.view.ViewGroup.measureChildWithMargins ViewGroup.java:5012)android.view.ViewGroup.measureChildWithMarginsでandroid.view.View.measure(View.java:15848) でandroid.widget.FrameLayout.onMeasure(FrameLayout.java:310) で(のViewGroup。 Javaの:5012) android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) でandroid.widget.LinearLayout.onMeasureでandroid.widget.LinearLayout.measureVertical(LinearLayout.java:695) (LinearLayout.javaで: 588)android.view.view.measure(View.java:15848)の (android.view.ViewGroupMeasureChildWithMargins(ViewGroup.java:5012)) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at com.android.internal.policy.impl.PhoneWindow $ DecorView.onMeasure(PhoneWindow.java:2189) android.view.View.measure(View.java:15848) (android.view.ViewRootImpl.performMeasure(ViewRootImpl。 Javaの:1905) android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1079) でandroid.view.ViewRootImpl.performTraversalsで(android.view.ViewRootImpl.doTraversalでViewRootImpl.java:1284) (ViewRootImpl.java: 1004)android.view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:5481) (android.view.Choreographer $ CallbackRecord.run(振付師))で、がandroid.view.ViewRootImplにあります。java:749) android.view.Choreographer.doCallbacks(Choreographer.java:562) (android.view.Choreographer.java:532) (android.view.Choreographer)$ FrameDisplayEventReceiver.run(振付師。 java:735) android.os.Handler.handleCallback(Handler.java:730) (android.os.Handler.dispatchMessage(Handler.java:92) android.os.Looper.loop(Looper.java: 137) android.app.ActivityThread.main(ActivityThread.java:5103) at java.lang.reflect.Method.invokeNative(ネイティブメソッド) at java.lang.reflect.Method.invoke(Method.java:525) ) at com .android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:737) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(ネイティブ方法)

This is the screenshot

我々が得るの場所]ボタンをクリックして、このエラーが表示されます。

答えて

0

「placeLikelihood」の問題については正しいと思いますが、同じ問題が発生し、Google Developer Consoleから「Android用GoogleプレイスAPI」を有効にすることを忘れていることがわかりました。これはnullポインタ例外を解決するはずです。 このリンクに移動:https://console.developers.google.com。接続したアプリを選択し、APIを有効にするをクリックします。その後、次のページでGoogle Places APIを検索して有効にすると、上記の問題は解決されます。乾杯!