有一个工程,本来运行是正常的,我想把它移植到另一台PC上,结果报:
[color=red]java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mobovip.bgr/com.mobovip.bgr.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.mobovip.bgr.MainActivity" on path: DexPathList[[zip file "/data/app/com.mobovip.bgr-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.mobovip.bgr-1, /vendor/lib, /system/lib]]
[/color]
这个问题出现的情况基本有那么几种:
1。Manifest文件中注册的Activity的名称,有没有写错,包名有没有搞错,有些网友,可能只写一个类名,前面用点号代替,但是这个类不在默认的包内,所以报这个错,那么只要写上类的全名,即可。[color=red](这个应该很容易检查)[/color]
2。有些android,需要一些第三方的包,直接将其引入,在以前是可以的,但是在最新的adt中不行,必须在程序中新建一个libs文件夹,将第三方的jar文件copy到libs文件夹中,才行,很多人因为这样才报错,特别是以前的项目,默认并没有这个libs文件夹,但是新版本的adt,默认就建了libs这个文件夹。[color=red](我的问题就出现在这点上,我安装了最新的ADT,虽然在程序中新建了libs文件夹,但有些jar包并没有放在libs中。但是我就奇怪,为什么引用其他文件夹中的jar包不可以?以前可以现在不可以,google疯了?)[/color]
3。有一点也很重要,在Java Build Path面板下的Order and Export中,一定要把你引入的jar文件,勾上,否则,跟没引用一样,切记。[color=red](这个应该关系不大)[/color]