com.android.dx.cf.iface.ParseException: class name (...) does not match path(...)

今天调试一个新版的安卓软件,无法启动,报错:

UNEXPECTED TOP-LEVEL EXCEPTION:

com.android.dx.cf.iface.ParseException: class name (com/vict/fsd/plugin/chart/BarChartView) does not match path (chart/BarChartView.class)


背景是这样的,之前从GitHub上搬过来一个插件,叫DestCharts,有几个类组成,用来生成安卓图表的,我新建了一个包,名字叫plugin,把那几个类放在包里。

现在整理新版软件,准备把这些类做成一个jar包进行引用,这样形式上更简洁。

这个jar只做了一层目录,也就是char/XXX.java这种形式,因此提示not match path(chart/BarChartView.class),那前面的class name(com/vict/fsd/plugin/chart/BarChartView)怎么理解呢?

原来是这样的:没有做成jar包之前,那几个Java文件里面的头部包目录是 com.vict.fsd.plugin.chart, 编译成.class文件之后就没变,所以当放在jar包里的时候,实际路径和类文件里面写的包路径不一样:



所以报错,解决方法是在IDE中重新建一个包,起好名字,比如:it.bradipao.lib.descharts,然后把那几个类放进去,自动编译好之后,再把.class文件拿出来重新做成jar包即可:





问题解决!

类似的,这种提示类名和路径不匹配的问题,很多都能从.class文件着手开始查。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鹰信息技术服务部

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值