【发布时间】:2015-06-23 13:29:20
【问题描述】:
我必须将我的位置的实际值放在一个变量中,但我有这个错误:
java.lang.IllegalStateException: Could not execute method of the activity
我的代码是:
@Override
public void onLocationChanged(Location location) {
mCurrentLocation = location;
Latit = mCurrentLocation.getLatitude();
Location objLoc = new Location("");
objLoc.setLatitude(location.getLatitude());
objLoc.setLongitude(location.getLongitude());
}
@Override
public void onConnected(Bundle bundle) {
startLocationUpdates();
}
public void locInicio(View v) {
TextView inicioLat = (TextView) findViewById(R.id.eInicioLat);
Latit = mCurrentLocation.getLatitude();
inicioLat.setText((int) Latit);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.adicionar);
buildGoogleApiClient();
}
在其他活动中,我可以使用onLocationChanged 获取值,但它总是返回错误。
04-16 23:01:43.447 12954-12954/greetrack.estg.ipvc.greentrack E/Zygote﹕MountEmulatedStorage() 04-16 23:01:43.447 12954-12954/greetrack.estg.ipvc.greentrack E/Zygote:v2 04-16 23:01:43.467 12954-12954/greetrack.estg.ipvc.greentrack E/SELinux﹕ [DEBUG] get_category:变量 seinfo:默认灵敏度:NULL, 类别:NULL 04-16 23:01:55.647 12954-12954/greetrack.estg.ipvc.greentrack E/ViewRootImpl﹕ sendUserActionEvent() mView == null 04-16 23:01:56.447 12954-12954/greetrack.estg.ipvc.greentrack E/AndroidRuntime:致命 例外:主要 进程:greetrack.estg.ipvc.greentrack,PID:12954 java.lang.IllegalStateException:无法执行活动的方法 在 android.view.View$1.onClick(View.java:4221) 在 android.view.View.performClick(View.java:5155) 在 android.view.View$PerformClick.run(View.java:20747) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:145) 在 android.app.ActivityThread.main(ActivityThread.java:5832) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 引起:java.lang.reflect.InvocationTargetException 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 android.view.View$1.onClick(View.java:4216) 在 android.view.View.performClick(View.java:5155) 在 android.view.View$PerformClick.run(View.java:20747) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:145) 在 android.app.ActivityThread.main(ActivityThread.java:5832) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 引起:java.lang.NullPointerException:尝试调用虚拟方法'double android.location.Location.getLatitude()' 空对象引用 在 greetrack.estg.ipvc.greentrack.Adicionar.locInicio(Adicionar.java:53) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 android.view.View$1.onClick(View.java:4216) 在 android.view.View.performClick(View.java:5155) 在 android.view.View$PerformClick.run(View.java:20747) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:145) 在 android.app.ActivityThread.main(ActivityThread.java:5832) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372)
【问题讨论】:
-
发布完整的堆栈跟踪。
-
好的,我看看我的问题
-
您只需要处理
onLocationChanged中位置为空的情况。例如if (location == null) return;作为方法中的第一行。
标签: android google-maps