A项目在properties->Android->Library中引用了B项目之后A项目导入的import xxx.xxx.xxx.R这句话就出错了 报错信息是这个R cannot be resolved。但是C项目这样引用B项目就不会出错啊 这是怎么回事啊
发现能正常引用的工程的话 在代码中虽然使用的自己的R这个东西 但是并没有import 自己的R 这是怎么实现的啊
A项目在properties->Android->Library中引用了B项目之后A项目导入的import xxx.xxx.xxx.R这句话就出错了 报错信息是这个R cannot be resolved。但是C项目这样引用B项目就不会出错啊 这是怎么回事啊
发现能正常引用的工程的话 在代码中虽然使用的自己的R这个东西 但是并没有import 自己的R 这是怎么实现的啊
猜测性回答
R
文件是Android
框架自动生成的资源类,用来引用定义在各种XML
配置文件的资源。
所谓自动生成的意思就是,只要你修改了xml
配置文件,类中的属性就会变化。通常,开发者修改R
文件是徒劳的。
你在B项目中引用A项目,还特意导入一个自动生成的类,虽然原理上能说通,但怎么想怎么有问题。
这里假设你是想使用A项目的资源,更好的办法应该是引用A项目的xml
配置文件,至于具体方式,我不清楚,或者复制粘贴,他会在B项目的R类中自动生成相应的属性。
项目间能不能互相引用,我不知道,但原理上只要将A项目的生成'jar'或'class'加入B项目的'CLASSPATH'就行。由于'Eclipse'的项目结构都是固定的,说不定会加入什么魔法,让你可以直接引用项目。
补充的内容
因为生成的R.java
文件跟你的源码在一个包内。同一个包内的类无需导入。
你在裸奔?
一:简单的就是打成jar包放进去
二:现有项目:
项目右键 --> Properties
Java Build Path
a) Projects --> Add
b) Required Project Selection --> Select projects to add: --> 选中想要引入的项目
c) Order and Export --> 选中想要引入的项目
Project references --> 选中想要引入的项目
Deployment Assembly web项目需要多一步设置
a) Add --> Select Directive Type --> Project --> 选中想要引入的项目 --> finish
我觉得是你的项目是有好多子模块,每个模块是一个maven项目,然后又有一个大的pom.xml文件,将这些模块整合起来,你单独改变其中一个模块内容,要执行maven update,更新maven依赖关系的。
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
不同工程之间能互相引用? 你是怎么玩的。