Android:如何消除“警告:无法映射字符为 ASCII 编码”的问题

3
我正在使用Android工具进行编译,不使用Eclipse
我通过命令行启动 "ant debug" 进行编译。
我在网上找到了很多关于如何去除烦人警告的指示,但我没有能够使它们中的任何一个起作用。
我已经尝试过 -D 选项,随机调整 build.* 文件,导出环境变量... 没有任何效果。
我猜想其中一些方法可能根本行不通,而其他一些方法可能会起作用,但我一直使用错误的方法。任何事情都有可能发生,我再也无法忍受了:有什么建议吗?
5个回答

3

我曾经遇到过相同的问题,这是我解决的方法:

当我运行ant release时,输出中有这样一行:[setup] Importing rules file: tools/ant/ant_rules_r3.xml。我编辑了ant_rules_r3.xml文件,并将 "ascii" 替换为 "UTF8"。


记录一下,这个文件的名称是 android-sdk/platforms/android-8/ant/ant_rules_r2.xml - o0'.

1

我有android-10 SDK套件,这是我在构建项目时如何解决编码警告的方法。 * 创建c:/myproject/build.properties文件 * 覆盖默认的ANT变量

## Override default ANT properties
java.encoding=ISO-8859-1

1

尽管在Android SDK中可以调整系统默认值,但这样的尝试可能会导致ANT的行为变得不可预测和非标准化。系统的其他部分可能会期望ANT的默认行为,或者更新会撤销你的更改。此外,如果你尝试在不同的系统上编译项目,比如构建服务器或团队成员的计算机上,你需要记得调整每个涉及的系统。因此,应避免进行系统调整并且不建议这样做。

ANT构建过程接受每个项目对系统广泛默认值的覆盖。虽然它确实需要为每个项目提供一个额外的文件,但它很可能在所有开发平台上提供更一致的构建行为,并便于开发、诊断和维护。

我正在使用ANT 1.8.4,并且按照Whome建议的方法提供了一个build.properties文件,但对我没有起作用,只是走向了正确的方向。我不得不创建一个ant.properties文件(对于每个项目),并提供与Whome建议的相同的覆盖。

然而,在任何其他文件中提供这些覆盖是一个坏主意,比如local.propertiesbuild.xml文件。这些文件是由Android工具创建和修改的。

我建议读者阅读build.xml文件,因为它有很好的文档说明,并提供了关于如何使用Android ANT构建系统的优秀提示和指导。

下一个有趣的阅读部分是位于android-sdk/tools/ant/build.xml的根ANT构建脚本。该文件将列出所有可覆盖的属性,例如:

java.target=1.6
verbose=true

但编码方式设置与之前由Whome建议的完全相同:

## Override default ANT properties
java.encoding=ISO-8859-1

0

对于瑞典字符集,我按照fhucho的建议进行了操作。但是我不得不使用ISO-8859-1而不是UTF-8。因此,也许最好使用ISO编码。


0
任何正在寻找解决方案的人,只需在gradle.properties中设置以下内容即可解决问题。

org.gradle.jvmargs='-Dfile.encoding=UTF-8'


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接