3

我从这里查看了最新的 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

谁能告诉我是什么问题?

4

1 回答 1

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>
于 2013-03-19T07:15:39.550 回答