AndroidRuntime(21900): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo

本文探讨了在使用最新版ADT和SDK创建Android应用时,引用公共类库导致活动类无法初始化的问题。通过分析错误日志和项目属性配置,作者找到了问题所在并解决了编译和运行时的错误。特别强调了最新版工具对类包引用的严格检测可能带来的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

情况描述:在我将adt升级到最新版,sdk升级到最新版后,创建了一个2.2版本的android程序,引用了一个以前自己写的CommandLibs公共类库。根据自己之前写的项目从写了一个很简单的页面,自认代码都写的比较规范,应该不会犯一些低级的错误,但程序连接到小米手机一直在报错:

08-06 22:07:38.230: W/dalvikvm(21900): Link of class 'Lcom/cp/mb/activity/BaseActivity;' failed

08-06 22:07:38.230: W/dalvikvm(21900): Unable to resolve superclass of Lcom/cp/mb/activity/SplashActivity; (44)

08-06 22:07:38.230: W/dalvikvm(21900): Link of class 'Lcom/cp/mb/activity/SplashActivity;' failed

08-06 22:07:46.360: W/dalvikvm(21900): threadid=1: thread exiting with uncaught exception (group=0x40015568)

08-06 22:07:46.430: E/AndroidRuntime(21900): FATAL EXCEPTION: main

AndroidRuntime(21900): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{xxxxxxxxxx}: java.lang.ClassNotFoundException:in loader dalvik.system.PathClassLoader[/data/app/com.cp.mb-1.apk]

折腾了我好一阵子,提示运行时错误,找不到相关的类,无法正确初始化activity, 但为何之前的项目又可以呢,同样的代码,为何之前的可以跑, 后来新建的项目不可以跑,于是我就往项目属性方向找,认真对比了一下,还是一模一样,引用了同一个公共类库,两个项目,唯一不同的,就是一个在我升级之前创建的,一个是我升级之后创建的。

从提示的错误来看,我找到无法初始化的类,一个自定义的Activity基础类BaseActivity, 而这个类实现了公共类库CommandLibs的一个接口,把这个接口实现删除了,就不会报错了,那就是说,项目在引用CommandLibs出现问题了。

于是我就往项目属性的引用那里找,最后发现,在我引用CommandLibs公共类库之后,还要设置:

Window->Project->Properties->Java Build Path->Order and Export中选择自己的公共类库,并勾选,编译通过,不再报错了。



那我就纳闷了,为何之前的项目,在这个选项里,不用勾选,也可以通过编译,并且运行正常呢? 我唯一猜想的,就是最新版的adt对这个类包的引用的检测更加严格了,不管它是还是不是,管它的,现在可以跑就行了,不要浪费太多时间,看奥运要紧。。。

发生crash的原因,通俗易懂的方式 03-27 07:28:15.239382 18519 18519 E AndroidRuntime: Process: com.smile.gifmaker, PID: 18519 03-27 07:28:15.239382 18519 18519 E AndroidRuntime: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.smile.gifmaker/com.yxcorp.gifshow.tube.TubeRouterActivity}: java.lang.ClassNotFoundException: Didn't find class "com.yxcorp.gifshow.tube.TubeRouterActivity" on path: DexPathList[[zip file "/my_preload/del-app/kuaishou/com.smile.gifmaker.apk"],nativeLibraryDirectories=[/data/preapps-lib/kuaishou/lib/arm64, /my_preload/del-app/kuaishou/com.smile.gifmaker.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]] 03-27 07:28:15.239382 18519 18519 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4255) 03-27 07:28:15.239382 18519 18519 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4569) 03-27 07:28:15.239382 18519 18519 E AndroidRuntime: at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:126) 03-27 07:28:15.239382 18519 18519 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:179) 03-27 07:28:15.239382 18519 18519 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:114) 03-27 07:28:15.239382 18519 18519 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:86) 03-27 07:28:15.239382 18519 18519 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2902) 03-27 07:28:15.239382 18519 18519 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107) 03-27 07:28:15.239382 18519 18519 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:282) 03-27 07:28:15.239382 18519 18519 E AndroidRuntime: at android.os.Looper.loop(Looper.java:387) 03-27 07:28:15.239382 18519 18519 E AndroidRuntime: a
04-01
分析以下报错信息: E FATAL EXCEPTION: main Process: com.example.contacts2, PID: 11798 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.contacts2/com.example.contacts2.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4186) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4467) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:222) at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:133) at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:103) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:80) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2823) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loopOnce(Looper.java:248) at android.os.Looper.loop(Looper.java:338) at android.app.ActivityThread.main(ActivityThread.java:9067) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:932) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference at android.content.ContextWrapper.getApplicationInfo(ContextWrapper.java:208) at android.view.ContextThemeWrapper.getTheme(ContextThemeWrapper.java:174) at android.content.Context.obtainStyledAttributes(Context.java:1103) at androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:922) at androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:889) at androidx.appcompat.app.AppCompatDelegateImpl.findViewById(AppCompatDelegateImpl.java:691) at androidx.appcompat.app.AppCompatActivity.findViewById(AppCompatActivity.java:264) at com.example.contacts2.MainActivity.<init>(MainActivity.java:35) at java.lang.Class.newInstance(Native Method) at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95) at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:45) at android.app.Instrumentation.newActivity(Instrumentation.java:1443) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4173) ... 13 more
最新发布
07-23
这是运行日志,运行时直接闪退,提示运用已经停止。 2025-06-03 19:43:52.326 24994-24994/? E/example.shopap: Unknown bits set in runtime_flags: 0x8000 2025-06-03 19:43:52.603 24994-24994/com.example.shopapp E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.shopapp, PID: 24994 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.shopapp/com.example.shopapp.Wangluo}: java.lang.ClassNotFoundException: Didn’t find class “com.example.shopapp.Wangluo” on path: DexPathList[[zip file “/data/app/com.example.shopapp-YL9iaYQB4wjZ8_3HRELixQ==/base.apk”],nativeLibraryDirectories=[/data/app/com.example.shopapp-YL9iaYQB4wjZ8_3HRELixQ==/lib/x86, /system/lib, /system/product/lib]] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3194) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) Caused by: java.lang.ClassNotFoundException: Didn’t find class “com.example.shopapp.Wangluo” on path: DexPathList[[zip file “/data/app/com.example.shopapp-YL9iaYQB4wjZ8_3HRELixQ==/base.apk”],nativeLibraryDirectories=[/data/app/com.example.shopapp-YL9iaYQB4wjZ8_3HRELixQ==/lib/x86, /system/lib, /system/product/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196) at java.lang.ClassLoader.loadClass(ClassLoader.java:379) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95) at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:43) at android.app.Instrumentation.newActivity(Instrumentation.java:1243) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3182) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
06-04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值