我已经从这里查看了最新的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
任何人都可以告诉我这是什么问题吗?
答案 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>