07-08 23:23:50.565: E/Trace(1164): error opening trace file: No such file or directory (2)
07-08 23:23:50.895: E/AndroidRuntime(1164): FATAL EXCEPTION: main
07-08 23:23:50.895: E/AndroidRuntime(1164): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.yxd.weatherapp/com.yxd.weatherapp.WeatherActivity}: java.lang.NullPointerException
07-08 23:23:50.895: E/AndroidRuntime(1164): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100)
07-08 23:23:50.895: E/AndroidRuntime(1164): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125)
07-08 23:23:50.895: E/AndroidRuntime(1164): at android.app.ActivityThread.access$600(ActivityThread.java:140)
07-08 23:23:50.895: E/AndroidRuntime(1164): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227)
07-08 23:23:50.895: E/AndroidRuntime(1164): at android.os.Handler.dispatchMessage(Handler.java:99)
07-08 23:23:50.895: E/AndroidRuntime(1164): at android.os.Looper.loop(Looper.java:137)
07-08 23:23:50.895: E/AndroidRuntime(1164): at android.app.ActivityThread.main(ActivityThread.java:4898)
07-08 23:23:50.895: E/AndroidRuntime(1164): at java.lang.reflect.Method.invokeNative(Native Method)
07-08 23:23:50.895: E/AndroidRuntime(1164): at java.lang.reflect.Method.invoke(Method.java:511)
07-08 23:23:50.895: E/AndroidRuntime(1164): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
07-08 23:23:50.895: E/AndroidRuntime(1164): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
07-08 23:23:50.895: E/AndroidRuntime(1164): at dalvik.system.NativeStart.main(Native Method)
07-08 23:23:50.895: E/AndroidRuntime(1164): Caused by: java.lang.NullPointerException
07-08 23:23:50.895: E/AndroidRuntime(1164): at com.yxd.weatherapp.WeatherActivity.refresh(WeatherActivity.java:299)
07-08 23:23:50.895: E/AndroidRuntime(1164): at com.yxd.weatherapp.WeatherActivity.onCreate(WeatherActivity.java:60)
07-08 23:23:50.895: E/AndroidRuntime(1164): at android.app.Activity.performCreate(Activity.java:5184)
07-08 23:23:50.895: E/AndroidRuntime(1164): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
07-08 23:23:50.895: E/AndroidRuntime(1164): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064)
07-08 23:23:50.895: E/AndroidRuntime(1164): ... 11 more
解决办法:打开AndroidManifest.xml文件,删掉<uses-sdk />标签。
由于删掉<users-sdk />后,软件界面显示效果可能有很大改变,我在尝试了多次之后发现可以不用删除<uses-sdk/>标签,可以改为:
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="8" />
也就是让minSdkVersion和targetSdkVersion取相同的值,当然这个值不能太大(也就是版本不能太高,不过可以自己多尝试几个版本)
我这样改后程序的界面依然有一小点与原来的不同,但是个人觉得也没很大影响。最关键的是程序依然能正确运行了。
当然,可能不是所有的此类错误都是这样的,但是我通过这个方法解决了我的问题,希望对需要的人有帮助。
还可以尝试将“android:targetSdkVersion”改为与模拟器相同的版本。