google places api android返回java..lang.nullpointerexception

google places api android返回java..lang.nullpointerexception,android,google-places-api,Android,Google Places Api,我试图实现GooglePlacesAPI,但它一直发送java.lang.nullpointerexception。我从这个网站上得到了代码: 根据我所能收集到的信息,我将URL发送到某个Google服务器并得到响应。该响应是JSON格式的,然后被解析为我的特定“位置”对象。我认为在这个解析阶段会发生一些事情。在站点中,他们使用了一些中间对象PlacesList,我认为这就是问题所在,因为我不理解它 砂石: public class PlacesList implements S

我试图实现GooglePlacesAPI,但它一直发送java.lang.nullpointerexception。我从这个网站上得到了代码:

根据我所能收集到的信息,我将URL发送到某个Google服务器并得到响应。该响应是JSON格式的,然后被解析为我的特定“位置”对象。我认为在这个解析阶段会发生一些事情。在站点中,他们使用了一些中间对象PlacesList,我认为这就是问题所在,因为我不理解它

砂石:

        public class PlacesList implements Serializable {

    @Key
    public String status;

    @Key
    public List<Locations> results;
主要来自主要活动 System.err(6447):atcom.example.mapmapreach.MainActivity.onCreate(MainActivity.java:86)==

以下是日志:

              04-26 19:10:52.839: W/System.err(4156): android.os.NetworkOnMainThreadException
              04-26 19:10:52.899: W/System.err(4156):   at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
              04-26 19:10:52.899: W/System.err(4156):   at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
              04-26 19:10:52.899: W/System.err(4156):   at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
              04-26 19:10:52.899: W/System.err(4156):   at java.net.InetAddress.getAllByName(InetAddress.java:214)
              04-26 19:10:52.899: W/System.err(4156):   at libcore.net.http.HttpConnection.<init>(HttpConnection.java:70)
              04-26 19:10:52.899: W/System.err(4156):   at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
              04-26 19:10:52.899: W/System.err(4156):   at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340)
              04-26 19:10:52.899: W/System.err(4156):   at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
              04-26 19:10:52.899: W/System.err(4156):   at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
              04-26 19:10:52.899: W/System.err(4156):   at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:316)
              04-26 19:10:52.899: W/System.err(4156):   at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:461)
             04-26 19:10:52.899: W/System.err(4156):    at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.connect(HttpsURLConnectionImpl.java:433)
             04-26 19:10:52.899: W/System.err(4156):    at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:290)
             04-26 19:10:52.899: W/System.err(4156):    at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:240)
             04-26 19:10:52.899: W/System.err(4156):    at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:81)
             04-26 19:10:52.899: W/System.err(4156):    at libcore.net.http.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:165)
             04-26 19:10:52.899: W/System.err(4156):    at com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:88)
             04-26 19:10:52.899: W/System.err(4156):    at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:814)
             04-26 19:10:52.909: W/System.err(4156):    at com.example.mapmapagain.PlaceSearch.search(PlaceSearch.java:64)
             04-26 19:10:52.909: W/System.err(4156):    at com.example.mapmapagain.MainActivity.onCreate(MainActivity.java:86)
             04-26 19:10:52.909: W/System.err(4156):    at android.app.Activity.performCreate(Activity.java:5104)
             04-26 19:10:52.909: W/System.err(4156):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
             04-26 19:10:52.909: W/System.err(4156):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
             04-26 19:10:52.909: W/System.err(4156):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
             04-26 19:10:52.909: W/System.err(4156):    at android.app.ActivityThread.access$600(ActivityThread.java:141)
             04-26 19:10:52.909: W/System.err(4156):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
             04-26 19:10:52.909: W/System.err(4156):    at android.os.Handler.dispatchMessage(Handler.java:99)
             04-26 19:10:52.909: W/System.err(4156):    at android.os.Looper.loop(Looper.java:137)
             04-26 19:10:52.909: W/System.err(4156):    at android.app.ActivityThread.main(ActivityThread.java:5039)
             04-26 19:10:52.909: W/System.err(4156):    at java.lang.reflect.Method.invokeNative(Native Method)
             04-26 19:10:52.909: W/System.err(4156):    at java.lang.reflect.Method.invoke(Method.java:511)
             04-26 19:10:52.909: W/System.err(4156):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
             04-26 19:10:52.909: W/System.err(4156):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
             04-26 19:10:52.909: W/System.err(4156):    at dalvik.system.NativeStart.main(Native Method)
04-26 19:10:52.839:W/System.err(4156):android.os.NetworkOnMainThreadException
04-26 19:10:52.899:W/System.err(4156):在android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
04-26 19:10:52.899:W/System.err(4156):位于java.net.InetAddress.lookupHostByName(InetAddress.java:385)
04-26 19:10:52.899:W/System.err(4156):位于java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
04-26 19:10:52.899:W/System.err(4156):位于java.net.InetAddress.getAllByName(InetAddress.java:214)
04-26 19:10:52.899:W/System.err(4156):位于libcore.net.http.HttpConnection.(HttpConnection.java:70)
04-26 19:10:52.899:W/System.err(4156):位于libcore.net.http.HttpConnection.(HttpConnection.java:50)
04-26 19:10:52.899:W/System.err(4156):位于libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340)
04-26 19:10:52.899:W/System.err(4156):位于libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
04-26 19:10:52.899:W/System.err(4156):位于libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
04-26 19:10:52.899:W/System.err(4156):位于libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:316)
04-26 19:10:52.899:W/System.err(4156):在libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:461)
04-26 19:10:52.899:W/System.err(4156):在libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.connect(HttpsURLConnectionImpl.java:433)
04-26 19:10:52.899:W/System.err(4156):位于libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:290)
04-26 19:10:52.899:W/System.err(4156):位于libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:240)
04-26 19:10:52.899:W/System.err(4156):位于libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:81)
04-26 19:10:52.899:W/System.err(4156):位于libcore.net.http.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:165)
04-26 19:10:52.899:W/System.err(4156):位于com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:88)
04-26 19:10:52.899:W/System.err(4156):位于com.google.api.client.http.HttpRequest.execute(HttpRequest.java:814)
04-26 19:10:52.909:W/System.err(4156):位于com.example.mapmapreach.PlaceSearch.search(PlaceSearch.java:64)
04-26 19:10:52.909:W/System.err(4156):位于com.example.mapmapreach.MainActivity.onCreate(MainActivity.java:86)
04-26 19:10:52.909:W/System.err(4156):位于android.app.Activity.performCreate(Activity.java:5104)
04-26 19:10:52.909:W/System.err(4156):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
04-26 19:10:52.909:W/System.err(4156):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
04-26 19:10:52.909:W/System.err(4156):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
04-26 19:10:52.909:W/System.err(4156):在android.app.ActivityThread.access$600(ActivityThread.java:141)
04-26 19:10:52.909:W/System.err(4156):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
04-26 19:10:52.909:W/System.err(4156):位于android.os.Handler.dispatchMessage(Handler.java:99)
04-26 19:10:52.909:W/System.err(4156):位于android.os.Looper.loop(Looper.java:137)
04-26 19:10:52.909:W/System.err(4156):位于android.app.ActivityThread.main(ActivityThread.java:5039)
04-26 19:10:52.909:W/System.err(4156):位于java.lang.reflect.Method.invokenactive(本机方法)
04-26 19:10:52.909:W/System.err(4156):位于java.lang.reflect.Method.invoke(Method.java:511)
04-26 19:10:52.909:W/System.err(4156):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-26 19:10:52.909:W/System.err(4156):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-26 19:10:52.909:W/System.err(4156):在dalvik.System.NativeStart.main(本机方法)

感谢您的帮助。

您正在主UI线程上进行联网,Android框架现在禁止该线程,正如您的
Android.os.NetworkOnMainThreadException
异常所示

这是禁止的,因为假设您的服务器无法访问,或者您的用户的internet连接非常慢。当程序启动您的
搜索
功能时,UI将完全冻结,直到它返回,因为UI线程将忙于尝试联系该服务器


将搜索函数放入一个
异步任务
,或将其包装在一个
可运行的
中,以便它在自己的线程中执行。请看看这个问题,看一个很好的例子

您是否正在使用emulator?请发布准确的stacktrace和其他内容,然后将粘贴的代码与行号进行映射?像是Activity.java:5104==“Places
              try {
        PlacesList places = ps.search(curr_lat, curr_longitude, 100.0);
    } catch (Exception e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
              04-26 19:10:52.839: W/System.err(4156): android.os.NetworkOnMainThreadException
              04-26 19:10:52.899: W/System.err(4156):   at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
              04-26 19:10:52.899: W/System.err(4156):   at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
              04-26 19:10:52.899: W/System.err(4156):   at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
              04-26 19:10:52.899: W/System.err(4156):   at java.net.InetAddress.getAllByName(InetAddress.java:214)
              04-26 19:10:52.899: W/System.err(4156):   at libcore.net.http.HttpConnection.<init>(HttpConnection.java:70)
              04-26 19:10:52.899: W/System.err(4156):   at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
              04-26 19:10:52.899: W/System.err(4156):   at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340)
              04-26 19:10:52.899: W/System.err(4156):   at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
              04-26 19:10:52.899: W/System.err(4156):   at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
              04-26 19:10:52.899: W/System.err(4156):   at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:316)
              04-26 19:10:52.899: W/System.err(4156):   at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:461)
             04-26 19:10:52.899: W/System.err(4156):    at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.connect(HttpsURLConnectionImpl.java:433)
             04-26 19:10:52.899: W/System.err(4156):    at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:290)
             04-26 19:10:52.899: W/System.err(4156):    at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:240)
             04-26 19:10:52.899: W/System.err(4156):    at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:81)
             04-26 19:10:52.899: W/System.err(4156):    at libcore.net.http.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:165)
             04-26 19:10:52.899: W/System.err(4156):    at com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:88)
             04-26 19:10:52.899: W/System.err(4156):    at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:814)
             04-26 19:10:52.909: W/System.err(4156):    at com.example.mapmapagain.PlaceSearch.search(PlaceSearch.java:64)
             04-26 19:10:52.909: W/System.err(4156):    at com.example.mapmapagain.MainActivity.onCreate(MainActivity.java:86)
             04-26 19:10:52.909: W/System.err(4156):    at android.app.Activity.performCreate(Activity.java:5104)
             04-26 19:10:52.909: W/System.err(4156):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
             04-26 19:10:52.909: W/System.err(4156):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
             04-26 19:10:52.909: W/System.err(4156):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
             04-26 19:10:52.909: W/System.err(4156):    at android.app.ActivityThread.access$600(ActivityThread.java:141)
             04-26 19:10:52.909: W/System.err(4156):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
             04-26 19:10:52.909: W/System.err(4156):    at android.os.Handler.dispatchMessage(Handler.java:99)
             04-26 19:10:52.909: W/System.err(4156):    at android.os.Looper.loop(Looper.java:137)
             04-26 19:10:52.909: W/System.err(4156):    at android.app.ActivityThread.main(ActivityThread.java:5039)
             04-26 19:10:52.909: W/System.err(4156):    at java.lang.reflect.Method.invokeNative(Native Method)
             04-26 19:10:52.909: W/System.err(4156):    at java.lang.reflect.Method.invoke(Method.java:511)
             04-26 19:10:52.909: W/System.err(4156):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
             04-26 19:10:52.909: W/System.err(4156):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
             04-26 19:10:52.909: W/System.err(4156):    at dalvik.system.NativeStart.main(Native Method)