【问题标题】:building osmand with "ant debug" gives error使用“ant debug”构建 osmand 会出错
【发布时间】:2013-03-15 13:36:41
【问题描述】:

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

谁能告诉我是什么问题?

【问题讨论】:

  • 我认为 ant 返回的错误非常清楚 - &lt;aapt/&gt; 任务需要 libraryRFileRefid 属性才能正常工作。
  • 我不擅长ant,图书馆应该在哪里?安装在系统中还是需要一些文件夹?
  • 它说“缺少属性库RFileRefid”应该在哪里定义以及在哪里需要该属性?
  • 属性应该像这样添加&lt;aapt libraryRFileRefi="" ... /&gt;。我找不到 aapt 文档,所以无法为您提供帮助。你知道我在哪里可以找到它吗?

标签: android ant build osmdroid


【解决方案1】:

只需要在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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-11
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多