第一种方法
因为Google宣布不对eclipse支持了,所以小弟也想从eclipse慢慢转到android studio!
在一次将项目迁移到android studio的时候 遇到了一些问题,特此记录下~!希望对大家有帮助!
项目迁移完成后,在AVD测试正常,连接到真机调试的时候报如下错误
-
-
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)</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">at android.os.Handler.dispatchMessage(Handler.java:102)</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">at android.os.Looper.loop(Looper.java:185)</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">at android.app.ActivityThread.main(ActivityThread.java:6493)</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="11"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">at java.lang.reflect.Method.invoke(Native Method)</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="12"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">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:<span class="hljs-number">1617</span>) </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="23"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">at android.os.Handler.dispatchMessage(Handler.java:<span class="hljs-number">102</span>) </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="24"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">at android.os.Looper.loop(Looper.java:<span class="hljs-number">185</span>) </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="25"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">at android.app.ActivityThread.main(ActivityThread.java:<span class="hljs-number">6493</span>) </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="26"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">at java.lang.reflect.Method.invoke(Native Method) </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="27"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">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
是不是发现 一切正常了呢?
# 第二种方法
今天写Android程序,遇到了java.lang.RuntimeException: Unable to instantiate activity ComponentInfo这个错误,原来是我的AndroidManifest.xml文件配置有误。以下是我本来的配置文件,我改过包名的。原来错误是在android:name=”.LogoActivity”,因为我的LogoActivity.java是在 com.hxxy2003.iweibo.ui下的,所以修改成android:name=”.ui.LogoActivity”就OK了。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hxxy2003.iweibo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".LogoActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ui.LoginActivity" />
<service android:name=".logic.MainService" />
</application>
</manifest>