Разбрах решението на проблемите. Отговорите са в моя отговор. И промених малко въпроса.
Проблемът все още не е разрешен.
Когато използвате Eclipse за изграждане на проект за Android, трябва ли да генерира повече от 1
R.java
файл?
Да, ще генерира R.java
за всяка библиотека, която е импортирана.
Как да го предпазя от генериране на допълнителните 2 R.java
файла
Не импортирайте тези други 2 библиотеки, но вероятно ще трябва да коригирате зависимостите си. Множеството не е проблем.
Проблемът по-долу обаче е отстранен... Eclipse все още генерира 3 R.java
файла и моят ant скрипт генерира само 1. За въпросния проект всичко се компилира добре и в двата сценария (ant или eclipse), но това може да е причина проблем в друг проект и бих искал да знам отговора на въпроса по-горе.
По-долу е старият проблем, който донякъде е решен
Опитвам се да създам някои скриптове за изграждане на мравки за няколко приложения. Когато се опитвате да стартирате този код:
<target name="resource-src" description="Generate the R.java file for this project's resources.">
<exec executable="${aapt}" failonerror="true">
<arg value="package"/>
<arg value="-f"/>
<arg value="-v"/>
<arg value="-M"/>
<arg path="../AndroidManifest.xml"/>
<arg value="-A"/>
<arg path="../assets"/>
<arg value="-I"/>
<arg path="${android_jar}"/>
<arg value="-m"/>
<arg value="-J"/>
<arg path="../gen"/> <!-- Create R.java in the gen directory -->
<arg value="-S"/>
<arg path="../res"/>
</exec>
</target>
Получавам тази грешка:
C:\BoogerReport\builder\build.xml:76: exec returned: 1
Забелязах, че това приложение генерира множество R.java
файлове, когато използва eclipse за изграждане на проекта (в папката gen). Мислех, че приложенията за Android трябва да генерират само 1 R.java
файл.
1. Това ли е така?
2. Ако не, какъв може да е проблемът?
3. Освен това тези два проблема свързани ли са или има нещо друго?
По-долу е AndroidManifest.xml за въпросния проект.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="alpha.beta.charley.delta.echo.booger.ui"
android:versionCode="2"
android:versionName="UnofficialBuild">
<uses-sdk android:minSdkVersion="10" />
<application android:icon="@drawable/booger"
android:label="@string/app_name">
<activity android:name=".BoogerReport"
android:label="@string/app_name"
android:configChanges="keyboardHidden|orientation"
android:windowSoftInputMode="stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="alpha.beta.charley.delta.message.boogerreport.CREATE" />
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="alpha.beta.charley.delta.message.category.LOCATION" />
</intent-filter>
</activity>
<activity android:name=".BoogerReportView"
android:configChanges="orientation">
<intent-filter>
<action android:name="alpha.beta.charley.delta.message.boogerreport.OPEN" />
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity android:name=".BoogerList"
android:configChanges="orientation" />
</application>
</manifest>
Допълнителна информация за отговор на зададени въпроси:
Пътища до генерираните R.java
файлове:
- алфа.бета.чарли.делта
- alpha.beta.charley.delta.echo.booger.ui
- alpha.beta.charley.datamodel