天天看點

ADT更新後Compile ExceptionUnable to instantiate activity ComponentInfo

今天将adt更新後(adnroid sdk tools從20更新到22, android sdk build-tools更新到17),突然所有程式不能啟動了,報找不到r類,然後layout并沒有錯誤,bin檔案夾下也沒有生成r.java類,後發現是android sdk tools等沒有安裝。

在android sdk manager中安裝完tools檔案夾下tools後依然不能啟動,異常如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

e/androidruntime(12439): fatal exception: main

e/androidruntime(12439): java.lang.runtimeexception: unable to instantiate activity componentinfo{cn.trinea.android.demo/cn.trinea.android.demo.mainactivity}: java.lang.classnotfoundexception: didn't find class "cn.trinea.android.demo.mainactivity" on path: dexpathlist[dexelements=[zip file "/data/app/cn.trinea.android.demo-1.apk"],nativelibrarydirectories=[/data/app-lib/cn.trinea.android.demo-1, /vendor/lib, /system/lib]]

e/androidruntime(12439): at android.app.activitythread.performlaunchactivity(activitythread.java:2382)

e/androidruntime(12439): at android.app.activitythread.handlelaunchactivity(activitythread.java:2520)

e/androidruntime(12439): at android.app.activitythread.access$600(activitythread.java:168)

e/androidruntime(12439): at android.app.activitythread$h.handlemessage(activitythread.java:1360)

e/androidruntime(12439): at android.os.handler.dispatchmessage(handler.java:99)

e/androidruntime(12439): at android.os.looper.loop(looper.java:153)

e/androidruntime(12439): at android.app.activitythread.main(activitythread.java:5508)

e/androidruntime(12439): at java.lang.reflect.method.invokenative(native method)

e/androidruntime(12439): at java.lang.reflect.method.invoke(method.java:511)

e/androidruntime(12439): at com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:835)

e/androidruntime(12439): at com.android.internal.os.zygoteinit.main(zygoteinit.java:602)

e/androidruntime(12439): at dalvik.system.nativestart.main(native method)

e/androidruntime(12439): caused by: java.lang.classnotfoundexception: didn't find class "cn.trinea.android.demo.mainactivity" on path: dexpathlist[dexelements=[zip file "/data/app/cn.trinea.android.demo-1.apk"],nativelibrarydirectories=[/data/app-lib/cn.trinea.android.demo-1, /vendor/lib, /system/lib]]

e/androidruntime(12439): at dalvik.system.basedexclassloader.findclass(basedexclassloader.java:53)

e/androidruntime(12439): at java.lang.classloader.loadclass(classloader.java:501)

e/androidruntime(12439): at java.lang.classloader.loadclass(classloader.java:461)

e/androidruntime(12439): at android.app.instrumentation.newactivity(instrumentation.java:1054)

e/androidruntime(12439): at android.app.activitythread.performlaunchactivity(activitythread.java:2373)

e/androidruntime(12439): ... 11 more

解決方法:

菜單project -> properties -> java build path -> order & export, 然後選中android private libraries, 菜單 project->clean,然後運作程式即可。

如果依然失敗,将相關的依賴工程選中android private libraries并clean然後重試即可

ps:

新版的adt加快了插件啟動速度,增加了dump view hierarchy for ui automator使得界面檢視更友善,capature system wide trace貌似是用來性能調優的,不過不支援windows,後面詳細了解看看

繼續閱讀