0

昨日は以前の問題をすべて修正することができ、シンプルなAndroidアプリは問題なく実行されています。

それらのためにすべてを設定した後、私は私のより複雑なアプリの3つに対して同じことをしようとしました。これらのアプリはすべて、ActionBarSherlockとViewPagerIndicatorを使用します。

最初の問題は、プロジェクトが(holoeverywhereなしで)ある場合、すでに追加されているクラスを追加しようとするため、antがコンパイルできないことでした。問題の原因となっているライブラリはわかっています->android-support-v4.jarですが、削除できません。ViewPagerIndicatorとActionBarSherlockに必要です。

2つ目の厄介な問題は、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はライブラリプロジェクトのbuild.xmlで定義されたproject.propertiesを無視します)、ビルドできません。

ヒントやアイデアはありますか?

上記のすべては大丈夫のようです。

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...

パス内の**は、実際のパスを非表示にするためだけのものです。スクリプトは正しいパスを知っています。

4

1 に答える 1

1

これで問題を修正することができました。build.xmlが破損していて、問題が発生したようです。

誰かが自分のアプリケーションパッケージの名前を変更したい場合は、次のソリューションがWebで見つかりました。

<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>

これは私が思う最もクリーンなバリアントです。

于 2012-09-06T12:51:30.703 に答える