|
for (Method method : LocationManager.class.getDeclaredMethods())
{
if (method.getName().equals("requestLocationUpdates") && !Modifier.isAbstract(method.getModifiers()) && Modifier.isPublic(method.getModifiers()))
{
//=============================================================
// 模 拟 位 置
//=============================================================
XposedBridge.hookMethod(method,new XC_MethodHook()
{
@Override
protected void beforeHookedMethod(MethodHookParam param) throws Throwable
{
if (param.args.length >= 4 && (param.args[3] instanceof LocationListener))
{
LocationListener ll = (LocationListener) param.args[3];
Class<?> clazz = LocationListener.class;
Method m = null;
for (Method method : clazz.getDeclaredMethods())
{
if (method.getName().equals("onLocationChanged") && !Modifier.isAbstract(method.getModifiers()))
{
m = method;
break;
}
}
Location l = new Location(LocationManager.GPS_PROVIDER);
l.setLatitude(Double.valueOf(纬度.trim()).doubleValue());
l.setLongitude(Double.valueOf(经度.trim()).doubleValue());
l.setAccuracy(10.00f);
l.setTime(System.currentTimeMillis());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1)
{
l.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos());
}
XposedHelpers.callMethod(ll, "onLocationChanged", l);
try
{
if (m != null)
{
m.invoke(ll, l);
}
}catch(Exception e)
{
XposedBridge.log(e);
}
}
}
});
}
}
01-09 03:15:50.400 E/Xposed (16530): de.robv.android.xposed.XposedHelpers$InvocationTargetError: java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Message android.os.Handler.obtainMessage(int, java.lang.Object)' on a null object reference
01-09 03:15:50.400 E/Xposed (16530): at de.robv.android.xposed.XposedHelpers.callMethod(XposedHelpers.java:1225)
01-09 03:15:50.400 E/Xposed (16530): at com.e4a.runtime.api.模拟位置$38.beforeHookedMethod(模拟位置.java:575)
01-09 03:15:50.400 E/Xposed (16530): at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:314)
01-09 03:15:50.400 E/Xposed (16530): at android.location.LocationManager.requestLocationUpdates(<Xposed>)
01-09 03:15:50.400 E/Xposed (16530): at com.baidu.location.f.e.b(Unknown Source)
01-09 03:15:50.400 E/Xposed (16530): at com.baidu.location.f.e.c(Unknown Source)
01-09 03:15:50.400 E/Xposed (16530): at com.baidu.location.f.e.a(Unknown Source)
01-09 03:15:50.400 E/Xposed (16530): at com.baidu.location.a.a.f(Unknown Source)
01-09 03:15:50.400 E/Xposed (16530): at com.baidu.location.a.a.e(Unknown Source)
01-09 03:15:50.400 E/Xposed (16530): at com.baidu.location.a.a.a(Unknown Source)
01-09 03:15:50.400 E/Xposed (16530): at com.baidu.location.g.a.a(Unknown Source)
01-09 03:15:50.400 E/Xposed (16530): at com.baidu.location.g.a.a(Unknown Source)
01-09 03:15:50.400 E/Xposed (16530): at com.baidu.location.g.a$a.handleMessage(Unknown Source)
01-09 03:15:50.400 E/Xposed (16530): at android.os.Handler.dispatchMessage(Handler.java:111)
01-09 03:15:50.400 E/Xposed (16530): at android.os.Looper.loop(Looper.java:194)
01-09 03:15:50.400 E/Xposed (16530): at android.os.HandlerThread.run(HandlerThread.java:61)
01-09 03:15:50.400 E/Xposed (16530): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Message android.os.Handler.obtainMessage(int, java.lang.Object)' on a null object reference
01-09 03:15:50.400 E/Xposed (16530): at com.baidu.location.f.e$c.onLocationChanged(Unknown Source)
01-09 03:15:50.400 E/Xposed (16530): at java.lang.reflect.Method.invoke(Native Method)
01-09 03:15:50.400 E/Xposed (16530): at java.lang.reflect.Method.invoke(Method.java:372)
01-09 03:15:50.400 E/Xposed (16530): at de.robv.android.xposed.XposedHelpers.callMethod(XposedHelpers.java:1217)
01-09 03:15:50.400 E/Xposed (16530): ... 15 more
这个是什么错误啊, 怎么解决啊, 我要修改的 App 可能用了 Baidu Sdk
|
|