喜糖

移动开发工程师 。涉及 android、ios、jni

导航

Android Eclipse 里面依赖工程无法关联源码解决方案

Posted on 2014-03-21 14:14  喜糖  阅读(5981)  评论(3编辑  收藏  举报

    android开发中,debug调试是一种非常实用快速定位问题的办法。eclipse中多工程依赖状态下会偶现无法debug的困扰,debug中的代码执行时会报出如下错误  The JAR of this class file belongs to container 'Android Dependencies' which does not allow modifications to source attachments on its entries 。

    从字面意思理解即无法加载源码,按照jar文件加载源码的方法,依赖工程->properties->java build path ->libraries 找到被依赖工程的Jar文件,点击source attachment。发现操作图层右边的所有选项全部置灰,所以这条路根本行不通。

    查看被依赖工程的class path 文件,发现如果某个工程可以debug,那么<classpathentry kind="src" path="src"/> 一定在<classpathentry kind="src" path="src_gen"/> 的前面,因此修改这两个配置属性的位置,将<classpathentry kind="src" path="src"/>放在class path 属性列表的最上边,保存并clean工程,重新debug。问题解决,可以正常查看源码。

    原因:debug工具在多工程依赖时,查找源码的方法是根据class path中配置的kind="src"的位置来寻找的,path="src_gen"和 path="src" 都是kind="src"类型的属性值,所以谁在前面就先找谁,找到之后就不再向下寻找。