Android 使用 Google 地方时出现空指针异常

Android Null Pointer Exception when using Google Places

我正在学习 android 并使用一个使用位置 api 的示例。我的堆栈跟踪如下。

03-28 22:08:47.228 10687-10687/? E/AndroidRuntime: FATAL EXCEPTION: main
                                               Process: com.test.class, PID: 10687
                                               java.lang.RuntimeException: Failure delivering result ResultInfo{who=android:fragment:0, request=1, result=-1, data=Intent { (has extras) }} to activity {com.test.class/com.test.class.MapActivity}: java.lang.NullPointerException
                                                   at android.app.ActivityThread.deliverResults(ActivityThread.java:3446)
                                                   at android.app.ActivityThread.handleSendResult(ActivityThread.java:3489)
                                                   at android.app.ActivityThread.access00(ActivityThread.java:139)
                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1258)
                                                   at android.os.Handler.dispatchMessage(Handler.java:102)
                                                   at android.os.Looper.loop(Looper.java:136)
                                                   at android.app.ActivityThread.main(ActivityThread.java:5102)
                                                   at java.lang.reflect.Method.invokeNative(Native Method)
                                                   at java.lang.reflect.Method.invoke(Method.java:515)
                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
                                                   at dalvik.system.NativeStart.main(Native Method)
                                                Caused by: java.lang.NullPointerException
                                                   at com.test.class.MapActivity.onPlaceSelected(MapActivity.java:114)
                                                   at com.google.android.gms.location.places.ui.PlaceAutocompleteFragment.onActivityResult(Unknown Source)
                                                   at android.app.Activity.dispatchActivityResult(Activity.java:5450)
                                                   at android.app.ActivityThread.deliverResults(ActivityThread.java:3442)
                                                   at android.app.ActivityThread.handleSendResult(ActivityThread.java:3489) 
                                                   at android.app.ActivityThread.access00(ActivityThread.java:139) 
                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1258) 
                                                   at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                   at android.os.Looper.loop(Looper.java:136) 
                                                   at android.app.ActivityThread.main(ActivityThread.java:5102) 
                                                   at java.lang.reflect.Method.invokeNative(Native Method) 
                                                   at java.lang.reflect.Method.invoke(Method.java:515) 
                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
                                                   at dalvik.system.NativeStart.main(Native Method) 

我的代码如此处所示 https://dpaste.de/iOmQ#L114 导致了错误。关于我做错了什么的任何指示?

您永远不会为 mPlaceDetailsText 赋值。在 onCreate(...) 中,您需要在 setContentView(...) 之后的某个时间添加以下行:

mPlaceDetailsText = (TextView) findViewById(R.id.id_from_layout_file);

并用 map_activity 布局文件中 TextView 的实际 ID 替换 R.id.id_from_layout_file

也为 mPlaceAttribution 做同样的事情。