我有2个android项目:
在我的apklib项目中,我在一个布局中有一个引用的微调器R.id.mySpinner
我有一个androidproject在eclipse和maven中编译得很好(使用mvn clean install)。 备注:第一个项目在一个布局中也使用了微调器R.id.mySpinner上的相同引用。
第二个android项目在eclipse下编译得很好但是在使用maven编译时我有以下错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project myproject: Compilation failure: Compilation failure:
[ERROR] /mypath/target/unpack/apklibs/mylibpackage/src/pathtoactivity/BaseActivity.java:[302,79] cannot find symbol
[ERROR] symbol: variable mySpinner
[ERROR] location: class mypackage.R.id
我注意到,正如编译器所说的那样,maven编译器在目录.. \ target \ generated-sources \ r \ mypackage \ R.java中生成的R不包含mySpinner引用,这与编译好的项目不同。
备注:第二个项目在任何类或布局中都没有任何对R.id.mySpinner的引用。
所以我在这里,我不知道再搜索了。我在两个项目中注意到的唯一区别是上面提到的注释。我不知道eclipse编译和mvn编译之间的差异是什么。
有人曾经遇到过这样的问题吗?或者你有一个提示,找到某些信息,让我在前往解决方案的路上?
答案 0 :(得分:3)
我终于找到了问题。 问题是布局在Android程序项目和apklib项目中具有相同的名称。因此,包含对apkklib项目中mypackage.R.id的引用的布局被覆盖。
在我的情况下,这是由eclipse为“hello world”项目创建的main.xml布局覆盖的库的main.xml布局,我忘了删除。
Maven在编译时检测到它,而Eclipse插件不是,也是一个bug。
从Android项目中删除秘密“hello world”main.xml修复它。