1. 程式人生 > >Android Studio Unable to instantiate activity ComponentInfo

Android Studio Unable to instantiate activity ComponentInfo

轉自 https://blog.csdn.net/chjqxxxx/article/details/78180815

因為Google宣佈不對eclipse支援了,所以小弟也想從eclipse慢慢轉到android studio!
在一次將專案遷移到android studio的時候 遇到了一些問題,特此記錄下~!希望對大家有幫助!

專案遷移完成後,在AVD測試正常,連線到真機除錯的時候報如下錯誤

FATAL EXCEPTION: main
Process: com.xxxxxxxxx.android, PID: 24099
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.xxxxxxxxx.android/com.xxxxxxxxx.android.WebActivity}: java.lang.ClassNotFoundException: Didn't find class "com.xxxxxxxxx.android.WebActivity" on path: DexPathList[[zip file "/data/app/com.xxxxxxxxx.android-1/base.apk"],nativeLibraryDirectories=[/data/app/com.xxxxxxxxx.android-1/lib/arm, /data/app/com.xxxxxxxxx.android-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2721)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2880)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1617)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:185)
at android.app.ActivityThread.main(ActivityThread.java:6493)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:916)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:806)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.xxxxxxxxx.android.WebActivity" on path: DexPathList[[zip file "/data/app/com.xxxxxxxxx.android-1/base.apk"],nativeLibraryDirectories=[/data/app/com.xxxxxxxxx.android-1/lib/arm, /data/app/com.xxxxxxxxx.android-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.app.Instrumentation.newActivity(Instrumentation.java:1079)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2711)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2880) 
at android.app.ActivityThread.-wrap12(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1617) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:185) 
at android.app.ActivityThread.main(ActivityThread.java:6493) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:916) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:806) 

大概意思就是找不到WebActivity這個類
但小編說了,在AVD是正常的,所以程式肯定沒問題。
百度了各種文章,都是說看AndroidManifest檔案有沒有配置正確,有沒有正常引用jar ,然後重新clean或者make module “APP”

以上各種方法我都嘗試過了!然而並沒有什麼卵用!
後來諮詢一大神,他說讓我把熱更新關掉試試!
熱更新是什麼鬼?對於我這個剛從eclipse過來的菜鳥來說,根本就是一頭霧水!
百度之~
關於熱更新的介紹
http://www.jianshu.com/p/2e23ba9ff14b
其實就是可以加速編譯,Instant Run,是android studio2.0新增的一個執行機制,在你編碼開發、測試或debug的時候,它都能顯著減少你對當前應用的構建和部署的時間。

當我們第一次點選run、debug按鈕的時候,它執行時間和我們往常一樣。但是接下去的時間裡,你每次修改程式碼後點擊run、debug按鈕,對應的改變將迅速的部署到你正在執行的程式上,傳說速度快到你都來不及把注意力集中到手機螢幕上,它就已經做好相應的更改。
開啟熱更新的方法

http://blog.csdn.net/u013277740/article/details/51008282
既然知道怎麼開,那麼肯定就知道怎麼關啦!
開啟IDE,進入File—>Setting—>Build,Execution,Deployment—>Instant Run
將將enable instant run to hot swap code/resource changes on deploy的勾去掉

在這裡插入圖片描述

然後重新run
是不是發現 一切正常了呢?


本文來自 chjqxxxx 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/chjqxxxx/article/details/78180815?utm_source=copy