2012-08-11 2 views
0

Вчера я смог исправить все мои предыдущие проблемы, и простые приложения для Android работают без проблем.ANT не работает с библиотечным проектом (ActionBarSherlock, HoloEverywhere)

После настройки для них я попытался сделать то же самое для 3 из моих более сложных приложений. Все эти приложения используют ActionBarSherlock и ViewPagerIndicator.

Первая проблема заключалась в том, что если у меня есть проект (без holoeverywhere), муравей не может скомпилироваться, потому что он пытается добавить уже добавленный класс. Я знаю, какая библиотека вызывает проблему -> android-support-v4.jar, но я не могу ее удалить. Это необходимо для ViewPagerIndicator и ActionBarSherlock.

Второй больше раздражает проблема в том, что как только я добавить HoloEverywhere (это требует ActionBarSherlock в зависимости) он дает мне следующую ошибку:

[renderscript] No RenderScript files to compile. 
    [echo] ---------- 
    [echo] Handling Resources... 
    [aapt] Generating resource IDs... 
    [aapt] /Users/**/Project Librarys/HoloEverywhere/HoloEverywhereLib/res/values/styles.xml:4: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock'. 
    [aapt] /Users/**/Project Librarys/HoloEverywhere/HoloEverywhereLib/res/values/styles.xml:6: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock'. 
    [aapt] /Users/**/Project Librarys/HoloEverywhere/HoloEverywhereLib/res/values-v14/styles.xml:12: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock'. 
    [aapt] /Users/**/Project Librarys/HoloEverywhere/HoloEverywhereLib/res/values/styles.xml:26: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light'. 
    [aapt] /Users/**/Project Librarys/HoloEverywhere/HoloEverywhereLib/res/values-v14/styles.xml:14: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light'. 
    [aapt] /Users/**/Project Librarys/HoloEverywhere/HoloEverywhereLib/res/values/styles.xml:46: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.DarkActionBar'. 
    [aapt] /Users/**/Project Librarys/HoloEverywhere/HoloEverywhereLib/res/values/styles.xml:66: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.ForceOverflow'. 
    [aapt] /Users/**/Project Librarys/HoloEverywhere/HoloEverywhereLib/res/values/styles.xml:86: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.ForceOverflow'. 
    [aapt] /Users/**/Project Librarys/HoloEverywhere/HoloEverywhereLib/res/values/styles.xml:106: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.DarkActionBar.ForceOverflow'. 

Я знаю, что это говорит о том, что ссылки на стиль ActionBarSherlock отсутствует, но почему? Я использую оригинальный ant-script и даже если мне удалось исправить все пути к библиотекам (ant игнорирует определенные project.properties в файле build.xml библиотечного проекта), который он не может построить.

Любые подсказки или идеи?

все, что выше, кажется, нормально.

Buildfile: /Users/**/Zuzzle/build.xml 

-set-mode-check: 

-set-release-mode: 

-release-obfuscation-check: 
    [echo] proguard.config is ${proguard.config} 

-check-env: 
[checkenv] Android SDK Tools Revision 20 
[checkenv] Installed at /Entwicklung/android-sdk 

-setup: 
    [echo] Project Name: SplashscreenActivity 
    [gettype] Project Type: Application 
    [echo] Switching between debug and non debug build: Deleting previous compilation output... 
    [delete] Deleting directory /Users/**/Zuzzle/bin/classes 

-build-setup: 
    [echo] Resolving Build Target for SplashscreenActivity... 
[gettarget] Project Target: Android 4.1 
[gettarget] API level:  16 
    [echo] ---------- 
    [echo] Creating output directories if needed... 
    [mkdir] Created dir: /Users/**/Zuzzle/bin/classes 
    [echo] ---------- 
    [echo] Resolving Dependencies for SplashscreenActivity... 
[dependency] Library dependencies: 
[dependency] 
[dependency] ------------------ 
[dependency] Ordered libraries: 
[dependency] 
[dependency] ------------------ 
[dependency] API<=15: Adding annotations.jar to the classpath. 
    [echo] ---------- 
    [echo] Building Libraries with 'release'... 

nodeps: 

-set-mode-check: 

-set-release-mode: 

-release-obfuscation-check: 
    [echo] proguard.config is ${proguard.config} 

-check-env: 
[checkenv] Android SDK Tools Revision 20 
[checkenv] Installed at /Entwicklung/android-sdk 

-setup: 
    [echo] Project Name: library 
    [gettype] Project Type: Android Library 
    [echo] Switching between debug and non debug build: Deleting previous compilation output... 
    [delete] Deleting directory /Users/**/Project Librarys/Android-ViewPagerIndicator/library/bin/classes 

-build-setup: 
    [echo] Resolving Build Target for library... 
[gettarget] Project Target: Android 4.1 
[gettarget] API level:  16 
    [echo] ---------- 
    [echo] Creating output directories if needed... 
    [mkdir] Created dir: /Users/**/Project Librarys/Android-ViewPagerIndicator/library/bin/classes 
    [echo] ---------- 
    [echo] Resolving Dependencies for library... 
[dependency] Library dependencies: 
[dependency] No Libraries 
[dependency] 
[dependency] ------------------ 
[dependency] API<=15: Adding annotations.jar to the classpath. 

-pre-build: 

-code-gen: 
[mergemanifest] Found Deleted Target File 
[mergemanifest] Merging AndroidManifest files into one. 
[mergemanifest] Manifest merger disabled. Using project manifest only. 
    [echo] Handling aidl files... 
    [aidl] No AIDL files to compile. 
    [echo] ---------- 
    [echo] Handling RenderScript files... 
[renderscript] No RenderScript files to compile. 
    [echo] ---------- 
    [echo] Handling Resources... 
    [aapt] Found Deleted Target File 
    [aapt] Generating resource IDs... 
    [echo] ---------- 
    [echo] Handling BuildConfig class... 
[buildconfig] No need to generate new BuildConfig. 

-pre-compile: 

-compile: 
    [javac] Compiling 8 source files to /Users/**/Project Librarys/Android-ViewPagerIndicator/library/bin/classes 
    [echo] Creating library output jar file... 
     [jar] Building jar: /Users/**/Project Librarys/Android-ViewPagerIndicator/library/bin/classes.jar 

-post-compile: 

-obfuscate: 

-dex: 
    [echo] Library project: do not convert bytecode... 

-crunch: 
    [crunch] Crunching PNG Files in source dir: /Users/**/Project Librarys/Android-ViewPagerIndicator/library/res 
    [crunch] To destination dir: /Users/**/Project Librarys/Android-ViewPagerIndicator/library/bin/res 
    [crunch] Crunched 0 PNG files to update cache 

-package-resources: 
    [echo] Library project: do not package resources... 

-package: 
    [echo] Library project: do not package apk... 

-post-package: 

-release-prompt-for-password: 

-release-nosign: 
    [echo] 
[propertyfile] Updating property file: /Users/**/Project Librarys/Android-ViewPagerIndicator/library/bin/build.prop 
[propertyfile] Updating property file: /Users/**/Project Librarys/Android-ViewPagerIndicator/library/bin/build.prop 
[propertyfile] Updating property file: /Users/**/Project Librarys/Android-ViewPagerIndicator/library/bin/build.prop 
[propertyfile] Updating property file: /Users/**/Project Librarys/Android-ViewPagerIndicator/library/bin/build.prop 

-release-sign: 

-post-build: 

release: 

nodeps: 

-set-mode-check: 

-set-release-mode: 

-release-obfuscation-check: 
    [echo] proguard.config is ${proguard.config} 

-check-env: 
[checkenv] Android SDK Tools Revision 20 
[checkenv] Installed at /Entwicklung/android-sdk 

-setup: 
    [echo] Project Name: library 
    [gettype] Project Type: Android Library 
    [echo] Switching between debug and non debug build: Deleting previous compilation output... 
    [delete] Deleting directory /Users/**/Project Librarys/ActionBarSherlock/library/bin/classes 

-build-setup: 
    [echo] Resolving Build Target for library... 
[gettarget] Project Target: Android 4.1 
[gettarget] API level:  16 
    [echo] ---------- 
    [echo] Creating output directories if needed... 
    [mkdir] Created dir: /Users/**/Project Librarys/ActionBarSherlock/library/bin/classes 
    [echo] ---------- 
    [echo] Resolving Dependencies for library... 
[dependency] Library dependencies: 
[dependency] No Libraries 
[dependency] 
[dependency] ------------------ 
[dependency] API<=15: Adding annotations.jar to the classpath. 

-pre-build: 

-code-gen: 
[mergemanifest] Found Deleted Target File 
[mergemanifest] Merging AndroidManifest files into one. 
[mergemanifest] Manifest merger disabled. Using project manifest only. 
    [echo] Handling aidl files... 
    [aidl] No AIDL files to compile. 
    [echo] ---------- 
    [echo] Handling RenderScript files... 
[renderscript] No RenderScript files to compile. 
    [echo] ---------- 
    [echo] Handling Resources... 
    [aapt] Found Deleted Target File 
    [aapt] Generating resource IDs... 
    [echo] ---------- 
    [echo] Handling BuildConfig class... 
[buildconfig] No need to generate new BuildConfig. 

-pre-compile: 

-compile: 
    [javac] Compiling 82 source files to /Users/**/Project Librarys/ActionBarSherlock/library/bin/classes 
    [javac] Note: Some input files use or override a deprecated API. 
    [javac] Note: Recompile with -Xlint:deprecation for details. 
    [echo] Creating library output jar file... 
     [jar] Building jar: /Users/**/Project Librarys/ActionBarSherlock/library/bin/classes.jar 

-post-compile: 

-obfuscate: 

-dex: 
    [echo] Library project: do not convert bytecode... 

-crunch: 
    [crunch] Crunching PNG Files in source dir: /Users/**/Project Librarys/ActionBarSherlock/library/res 
    [crunch] To destination dir: /Users/**/Project Librarys/ActionBarSherlock/library/bin/res 
    [crunch] Crunched 0 PNG files to update cache 

-package-resources: 
    [echo] Library project: do not package resources... 

-package: 
    [echo] Library project: do not package apk... 

-post-package: 

-release-prompt-for-password: 

-release-nosign: 
    [echo] 
[propertyfile] Updating property file: /Users/**/Project Librarys/ActionBarSherlock/library/bin/build.prop 
[propertyfile] Updating property file: /Users/**/Project Librarys/ActionBarSherlock/library/bin/build.prop 
[propertyfile] Updating property file: /Users/**/Project Librarys/ActionBarSherlock/library/bin/build.prop 
[propertyfile] Updating property file: /Users/**/Project Librarys/ActionBarSherlock/library/bin/build.prop 

-release-sign: 

-post-build: 

release: 

nodeps: 

-set-mode-check: 

-set-release-mode: 

-release-obfuscation-check: 
    [echo] proguard.config is ${proguard.config} 

-check-env: 
[checkenv] Android SDK Tools Revision 20 
[checkenv] Installed at /Entwicklung/android-sdk 

-setup: 
    [echo] Project Name: library 
    [gettype] Project Type: Android Library 
    [echo] Switching between debug and non debug build: Deleting previous compilation output... 
    [delete] Deleting directory /Users/**/Project Librarys/HoloEverywhere/HoloEverywhereLib/bin/classes 

-build-setup: 
    [echo] Resolving Build Target for library... 
[gettarget] Project Target: Android 4.1 
[gettarget] API level:  16 
    [echo] ---------- 
    [echo] Creating output directories if needed... 
    [mkdir] Created dir: /Users/**/Project Librarys/HoloEverywhere/HoloEverywhereLib/bin/classes 
    [echo] ---------- 
    [echo] Resolving Dependencies for library... 
[dependency] Library dependencies: 
[dependency] No Libraries 
[dependency] 
[dependency] ------------------ 
[dependency] API<=15: Adding annotations.jar to the classpath. 

-pre-build: 

-code-gen: 
[mergemanifest] Found Deleted Target File 
[mergemanifest] Merging AndroidManifest files into one. 
[mergemanifest] Manifest merger disabled. Using project manifest only. 
    [echo] Handling aidl files... 
    [aidl] No AIDL files to compile. 
    [echo] ---------- 
    [echo] Handling RenderScript files... 

** на пути только для того, чтобы скрыть реальный путь. скрипт знает правильный путь.

+0

«Я знаю, какая библиотека вызывает проблему -> android-support-v4.jar, но я не могу ее удалить. Это необходимо для ViewPagerIndicator и ActionBarSherlock». - у одного или обоих из них будут свои собственные копии; вам не нужен он сам. Однако, поскольку вы решили не публиковать реальную ошибку (вместо этого, отправляя другой случайный выход **, не ** отображая ошибку), вам сложно дать более конкретные рекомендации. «ant игнорирует определенные project.properties в build.xml проекта библиотеки» - он работает для меня. – CommonsWare

+0

Что работает для вас? этот муравей игнорирует одни и те же библиотеки? вы не знаете, почему скрипт ant не создает приложение? я бы действительно оценил любую помощь – mikepenz

+0

«Что для меня работает?» - Ant обращает внимание на «project.properties» библиотечных проектов, для их зависимостей проекта библиотеки. – CommonsWare

ответ

1

Теперь я смог исправить свою проблему. Кажется, мой файл build.xml был поврежден, и у него возникли проблемы.

Если кто-то хочет переименовать его пакет приложений, вот решение я нашел в Интернете:

<target name="-package-resources" depends="-crunch"> 
     <!-- only package resources if *not* a library project --> 
     <do-only-if-not-library elseText="Library project: do not package resources..." > 
      <aapt executable="${aapt}" 
        command="package" 
        versioncode="${package.manifest.version.code}" 
        versionname="${package.manifest.version.name}" 
        debug="${build.is.packaging.debug}" 
        manifest="${out.manifest.abs.file}" 
        assets="${asset.absolute.dir}" 
        androidjar="${project.target.android.jar}" 
        apkfolder="${out.absolute.dir}" 
        nocrunch="${build.packaging.nocrunch}" 
        resourcefilename="${resource.package.file.name}" 
        resourcefilter="${aapt.resource.filter}" 
        libraryResFolderPathRefid="project.library.res.folder.path" 
        libraryPackagesRefid="project.library.packages" 
        previousBuildType="${build.last.target}" 
        buildType="${build.target}" 
        ignoreAssets="${aapt.ignore.assets}" 
        manifestpackage="${package.manifest.name}"> 
       <res path="${out.res.absolute.dir}" /> 
       <res path="${resource.absolute.dir}" /> 
       <!-- <nocompress /> forces no compression on any files in assets or res/raw --> 
       <!-- <nocompress extension="xml" /> forces no compression on specific file extensions in assets and res/raw --> 
      </aapt> 
     </do-only-if-not-library> 
    </target> 

Это самый чистый вариант я думаю.

+1

добавить libraryRFileRefid = "project.library.bin.r.file.path" к этому сделает это идеально. –

+0

спасибо за поздний ответ. Теперь я использую gradle. – mikepenz

+1

На самом деле ваш ответ помог мне, я не пытался ответить. –

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