使用“ant debug”构建osmand会出错

时间:2013-03-15 13:36:41

标签: android ant build osmdroid

我已经从这里查看了最新的Osmand源代码 并按照此处的所有步骤进行操作

现在我正在尝试使用命令ant debug通过ant构建apk但它失败了

我执行了以下命令:

myname@myname-VirtualBox:~/dev/osmand/android/OsmAnd$ ant -f build.xml
which gives output as
BUILD SUCCESSFUL

在我尝试之后

myname@myname-VirtualBox:~/dev/osmand/android/OsmAnd$ ant debug

它失败了,最后跟着日志:

-crunch:
   [crunch] Crunching PNG Files in source dir: /home/moonshooter/dev/osmand/android/OsmAnd/res
   [crunch] To destination dir: /home/moonshooter/dev/osmand/android/OsmAnd/bin/res
   [crunch] Crunched 0 PNG files to update cache

-package-resources:

BUILD FAILED
/home/myname/dev/osmand/android/OsmAnd/build.xml:27: The following error occurred while executing this line:
/home/myname/dev/osmand/android/OsmAnd/build.xml:28: Missing attribute libraryRFileRefid

Total time: 18 seconds

xml中的第27行和第28行是

<do-only-if-not-library elseText="Library project: do not package resources...">
                    <aapt executable="${aapt}" command="package" versioncode="${version.code}"versionname="${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="$`enter code here`{build.last.target}"buildType="${build.target}" ignoreAssets="${aapt.ignore.assets}">

这是整个文件http://pastebin.com/Dv20iT8r

任何人都可以告诉我这是什么问题吗?

1 个答案:

答案 0 :(得分:4)

只需在 aapt 标记

中添加此属性 libraryRFileRefid =“project.library.bin.r.file.path”
<do-only-if-not-library elseText="Library project: do not package resources...">
            <aapt executable="${aapt}" command="package" versioncode="${version.code}" versionname="${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}" libraryRFileRefid="project.library.bin.r.file.path" libraryResFolderPathRefid="project.library.res.folder.path" libraryPackagesRefid="project.library.packages" previousBuildType="${build.last.target}" buildType="${build.target}" ignoreAssets="${aapt.ignore.assets}">
                <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>