使用Google商家信息时,Android Null Pointer异常

时间:2016-03-29 02:12:47

标签: android google-maps google-play-services

我正在学习android并使用一个使用places 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.access$1300(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.access$1300(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导致错误。关于我做错了什么的指示?

1 个答案:

答案 0 :(得分:0)

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

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

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

mPlaceAttribution也做同样的事情。