记一次坑自己的经历

一、问题现象:

一个简单的APP项目,只有一个MainActivity,启动就报错,(上个月还是正常的):


  FATAL EXCEPTION: main
  Process: com.just.test, PID: 6115
  java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.just.test/com.just.test.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.just.test.MainActivity" on path: DexPathList[[],nativeLibraryDirectories=[/data/app/com.just.test-15AVhv_y7TNl1DbG_WVbEw==/lib/arm64, /system/lib64, /system/product/lib64]]
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2896)
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3113)
      at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
      at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
      at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831)
      at android.os.Handler.dispatchMessage(Handler.java:106)
      at android.os.Looper.loop(Looper.java:193)
      at android.app.ActivityThread.main(ActivityThread.java:6786)
      at java.lang.reflect.Method.invoke(Native Method)
      at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
  Caused by: java.lang.ClassNotFoundException: Didn't find class "com.just.test.MainActivity" on path: DexPathList[[],nativeLibraryDirectories=[/data/app/com.just.test-15AVhv_y7TNl1DbG_WVbEw==/lib/arm64, /system/lib64, /system/product/lib64]]
      at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
      at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:69)
      at android.app.Instrumentation.newActivity(Instrumentation.java:1215)
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2884)
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3113) 
      at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 
      at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 
      at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831) 
      at android.os.Handler.dispatchMessage(Handler.java:106) 
      at android.os.Looper.loop(Looper.java:193) 
      at android.app.ActivityThread.main(ActivityThread.java:6786) 
      at java.lang.reflect.Method.invoke(Native Method) 
      at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)  
 

二、排查问题

        各种检查,各种搜索,包含但不限于:dex分包问题?jdk配置问题?包名问题?混淆问题?设备问题?经过九九八十一分钟分析排查,仍然没有解决。既然上个月正常,说明最近修改了什么,仔细回忆,也没有做什么特别修改,只有逐行检查各项配置(而不是根据可能的问题检查对应配置)。在经过七七四十九分钟的排查,终于找到罪魁祸首:

        android:hasCode="false"

该配置是在AndroidManifest.xml里面,application标签上面,代表该项目没有代码。是前段时间做overlay测试验证时,添加了该配置,然后发现打开的项目错误了,就直接切换了到overlay项目去了,该项目忘记去掉了。坑!!!

三、总结

1.项目添加git,并且及时提交,可以快速追溯修改(虽然这个项目只是练习demo);

2.不要随便修改代码,即使只是个demo,最后坑自己;

3.老了,记忆严重下降,无解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值