当前位置: 首页 > 知识库问答 >
问题:

PlaceLikelihoodBuffer为空

百里俭
2023-03-14

我在谷歌地图上工作,试图运行一个github项目:“选择当前位置并在地图上显示详细信息”这是链接。但当我运行该项目时,它会在“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();
            }
        });

实际上,在上面的代码中,likelyPlaces 是 null。我想问为什么可能的地方是空的,以及如何解决这个错误。

更新

以下是日志详细信息

e/结果:PlaceLikelihoodBuffer{status=status{statusCode=ERROR,分辨率=null},属性=null}

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.widget.LinearLayout.measureChildBeforeLayout(LinearLayot.java:1404)在android.widget.linearLayou.measure(LinearLayout.java:695)在android.widget.LinearLayet.onMeasure在android.view.view.Measuring(view.java:15848)在android.;view.ViewGroup.MeasuryWhithMargins在android.widget.linearLayeout.Linearlayot.onMeasure(LinearLayout.java:588)在android(ViewGroup.java:5012)在android.widget.FrameLayout.onMeasure(frameLayoutJava:310)在android.support.v7.widgets.ContentFrameLayet.onMeasure(ContentFrameLayout.java:135)在android.;view.view.view.度量(view.java:15848)在android.view.ViewGroup.MeasureChildWidget(ViewGroup.java:5012),在android.widget.frameLaway.onMeasureandroid.widget.FrameLayout.onMeasure上的android.view.ViewGroup.MeasureWithMargins(ViewGroup.java:5012)和android.Wicket.FrameLayout.onMeasure(FrameLayot.java:310)上的android-view.view.view-view.ViewGroup.measure-MeasureChildWithMarrings(ViewGroup.java:5032)和android.Widgets.LinearLayout.LinearLayout.java:1404上的LinearLayeout.MeasueVertical(LinearLayout.java:695)上的android.view.view.measure上的android.widget.LinearLayout.onMeasure(LinearLayot.java:588)和android.view.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5012)位于android.widget.FrameLayout.onMeasures(FrameLayout.java:310)位于com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2189)和Android.view.view.view.java:15848android.view.ViewRootImpl.performTraversals(ViewRootImpr.java:1284)在android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1079)在android.view.ViewRootImpl.PerformTransversals在android.view.ViewRootImpl.doTraversal(ViewRootimp.java:1004)在android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5481)在andro.view.Choreographer$CallbackRecord.run(Choreographer.java:749)在android.view.Choreogrupher.doCallbacks(Choreogropher.java:562)在android.view.choreogracher.doFrame(Choregographer.java:532)在Android.view.Horeograpper$FrameDisplayEventReceiver.run(Choreoographeer.java:735)在Android尔.os.Handler.HandlerCallback(Handler.java:730)在安android.os.Handler.dispatchMessage(Handler.java:92)在安Android.os.Looper.Loopeer.loop(Looper.java:137android.app.ActivityThread.main(ActivityThead.java:5103)位于java.lang.reflect.Method。位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)的java.lang.reflect.Method.invoke(Method.java:525)和位于dalvik.system.NativeStart的com.andro.internal.os.ZygoteInit.main(ZygoteInit.java:553)的Invokenactive(本机方法)。主(本机方法)

当我们点击获取地点按钮,然后这个错误出现。

共有1个答案

何德寿
2023-03-14

你是对的,问题在“地点可能性”,我遇到了同样的问题,经过一些研究发现,我忘记了从谷歌开发人员控制台启用“谷歌Android地点API”。这应该可以解决空指针异常。去这个链接:https://console.developers.google.com。然后选择您连接的应用程序,并点击启用API。然后在下一页搜索Google Places API并启用它,上面的问题就解决了。干杯!

 类似资料:
  • 问题内容: 我有Ubuntu 10.10和apache2,php 5.3.3-1和mysql 5.1。 我正在通过URL向页面传递一些值。在该页面上,如果我这样做了,那么我会看到数组的内容。但是,如果我这样做数组是空的。任何想法为什么会这样? 问题答案: 也可以尝试检查php.ini中的“ request_order” 选项:

  • 我的问题是无法使用和获取文本字段。我尝试使用XPath来选择对象,但没有成功。 这是我的代码: 我重新提出这个问题是因为旧的问题有点让人困惑,我想。这是旧的 XML形式的我的文档(Document.getXML()) 我需要选择文本字段,做一个邮件合并,我的计划将是复制和移动字段。如果有更好的方法,我愿意尝试一下:)

  • 正如您将看到的,当涉及到Java和JavaFX时,我是一个大傻瓜。我花了很多时间四处阅读(各种论坛帖子和tuts)并试图弄清楚我自己是从哪里得到这个问题的,但它已经到了我发帖从一个了解他们的业务的人那里得到反馈的地步。 在回复的时候,请你花点时间解释一下为什么有些东西不能工作,以及一些一般性的指示?这里是我到目前为止所拥有的(我的FXML和我的两个类)任何指针都将是美妙的!! 我的FXML; 现在

  • 问题内容: 在Java代码中执行空检查时,如果您为空值抛出IllegalArgumentExceptions,那么您将使用哪种消息模板? 我们倾向于使用这样的东西 哪个更好:“ is null”或“ was null”,为什么? 对我来说,“是空的”感觉更自然。 问题答案: 由于由于失败的前提条件检查而引发,因此,我认为除了陈述事实以外,还应说明已违反的 要求 。 就是说,而不是说。 关于使用库进

  • 问题内容: 无法使用XMLHttpRequest获取数据(状态0,responseText为空): 它警告“状态0”。 与localhost请求的情况相同(cd_catalog.xml保存为本地文件) 但是使用本地主机IP请求 并与本地文件请求 一切正常(状态200) 什么会导致在线请求出现问题(状态= 0)? PS:Live HTTP标头显示在所有4种情况下一切正常: PS2:VMWare上的A

  • 我有以下测试WebAPI代码,我没有在生产中使用WebAPI,但我之所以这样做是因为我讨论了这个问题:WebAPI异步问题 不管怎样,下面是冒犯的WebAPI方法: 因此,我认为第二个异常是预期的,因为当完成时,它很可能位于另一个线程上,其中作为线程静态变量将不再解析为适当的值。现在,基于同步上下文,它实际上可以在await之后被强制返回到相同的线程,但我在测试中没有做任何花哨的事情。这只是对的简