2013-05-28 5 views
3

У меня есть 2 андроид проекты:R.Id. отсутствует при использовании Maven генерироваться apklib в андроида проекте

  • 1 проект библиотеки используется в качестве API в ряде других проектов и генерируя apklib
  • 2 андроид проектов с использованием этой apklib

в моей apklib проекте у меня есть в одном макете ссылочной вертушка R.id.mySpinner

у меня есть один androidproject компиляция хорошо в затмении и мавенны (и петь mvn clean install). Примечание. Эти первые проекты используют также в одном макете ту же ссылку на счетчик R.id.mySpinner.

Второй андроида проект компилирует хорошо под затмением, но при компиляции с 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 

Я заметил, что, как сказано компилятор R генерируется компилятором Maven в директории .. \ цель \ Сгенерированные источники \ r \ mypackage \ R.java не содержат ссылку mySpinner в отличие от хорошо компилируемого проекта.

Примечание: этот второй проект НЕ имеет ссылки на R.id.mySpinner в любом из его классов или макетов.

Итак, вот я, я не знаю, что искать. Единственное различие, которое я заметил между этими двумя проектами, - это отмеченное выше замечание. Я не знаю, что такое различие между компиляцией eclipse и компиляцией mvn.

Кто-то когда-либо сталкивался с такой проблемой? Или у вас есть подсказка, чтобы найти где-то информацию, которая меня настраивает на пути к решению?

ответ

3

Я, наконец, нашел проблему самостоятельно. Проблема заключалась в том, что макет имел то же имя как в программном проекте Android, так и в проекте apklib. Как следствие, макет, содержащий ссылку на mypackage.R.id в проекте apkklib, был отменен.

В моем случае это был макет main.xml библиотеки, который был переопределен макетом main.xml, созданным eclipse для проекта «hello world», и что я забыл удалить.

Maven обнаружил его во время компиляции, в то время как плагин Eclipse не был, снова ошибка.

Удаление подпольного «привет мир» main.xml из проекта Android исправил его.

Смежные вопросы