11-28 11:49:37.072: ERROR/AndroidRuntime(13234): java.lang.NoClassDefFoundError: android.net.NetworkConnectivityListener
11-28 11:49:37.072: ERROR/AndroidRuntime(13234): at com.google.android.maps.MapActivity.onCreate(MapActivity.java:199)
11-28 11:49:37.072: ERROR/AndroidRuntime(13234): at org.i.ryze.activity.GPS.onCreate(GPS.java:34)
11-28 11:49:37.072: ERROR/AndroidRuntime(13234): at android.app.Activity.performCreate(Activity.java:4465)
11-28 11:49:37.072: ERROR/AndroidRuntime(13234): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
11-28 11:49:37.072: ERROR/AndroidRuntime(13234): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
11-28 11:49:37.072: ERROR/AndroidRuntime(13234): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
11-28 11:49:37.072: ERROR/AndroidRuntime(13234): at android.app.ActivityThread.access$600(ActivityThread.java:123)
11-28 11:49:37.072: ERROR/AndroidRuntime(13234): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
11-28 11:49:37.072: ERROR/AndroidRuntime(13234): at android.os.Handler.dispatchMessage(Handler.java:99)
11-28 11:49:37.072: ERROR/AndroidRuntime(13234): at android.os.Looper.loop(Looper.java:137)
11-28 11:49:37.072: ERROR/AndroidRuntime(13234): at android.app.ActivityThread.main(ActivityThread.java:4424)
11-28 11:49:37.072: ERROR/AndroidRuntime(13234): at java.lang.reflect.Method.invokeNative(Native Method)
11-28 11:49:37.072: ERROR/AndroidRuntime(13234): at java.lang.reflect.Method.invoke(Method.java:511)
11-28 11:49:37.072: ERROR/AndroidRuntime(13234): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-28 11:49:37.072: ERROR/AndroidRuntime(13234): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-28 11:49:37.072: ERROR/AndroidRuntime(13234): at dalvik.system.NativeStart.main(Native Method)
这个问题一开始我也很头疼,一开始纠结于错误定位到 super.onCreate(savedInstanceState);。苦思无果,则各种百度,google。
后来发现有人说在模拟器下是没有问题的,只有在真机下才有问题。
我试了下,果然如此。
为什么?为什么模拟器可以而真机不可以?
思索片刻恍然大悟,我的爪机是国行lenovo k860,google服务全部阉割。
知道原因就好办了,又各种百度、google。过程不足道也。直接上解决办法。
- http://pan.baidu.com/share/link?shareid=150060&uk=1964506139 下载google.zip
- googel.zip中有三个文件
地图程序框架:com.google.android.maps.jar
地图权限:com.google.android.maps.xml
网络定位程序:NetworkLocation.apk
把这三个文件放到自己的爪机对应的目录(手机需root,推荐RE管理器)
/system/framework/com.google.android.maps.jar
/system/etc/permissions/com.google.android.maps.xml
/data/app_s/NetworkLocation.apk(可能有些手机里没有这个app_s这个文件夹 自己建个即可)
- 修改这3个文件的权限为:左边3个全选,中间最上面选上下面2个空,右边3个全空。 不root是修改不了的,记得是先移动文件,再修改权限(记得修改软件权限的时候 ,把管理器挂载为可读写,只读/写是不能修改权限的)
- 重启手机
- 重新运行程序