Java 安卓:摆脱;警告:用于编码ascii的不可映射字符;

Java 安卓:摆脱;警告:用于编码ascii的不可映射字符;,java,android,encoding,internationalization,Java,Android,Encoding,Internationalization,我正在使用没有eclipse的android工具进行编译 我从命令行编译启动“ant debug” 我在网上找到了很多关于如何删除的说明,但都没有成功 我尝试了-D选项,我尝试了随机调整build.*文件,我尝试了导出环境变量。。。没什么 我想这些方法中的一些根本不起作用,而其他一些也会起作用,但我一直做得不正确。任何事情都有可能,我再也受不了了:有什么建议吗?我也有同样的问题。我就是这样解决的: 当我启动ant release时,输出中有一行:[setup]导入规则文件:tools/ant/a

我正在使用没有eclipse的android工具进行编译

我从命令行编译启动“ant debug”

我在网上找到了很多关于如何删除的说明,但都没有成功

我尝试了-D选项,我尝试了随机调整build.*文件,我尝试了导出环境变量。。。没什么


我想这些方法中的一些根本不起作用,而其他一些也会起作用,但我一直做得不正确。任何事情都有可能,我再也受不了了:有什么建议吗?

我也有同样的问题。我就是这样解决的:


当我启动
ant release
时,输出中有一行:
[setup]导入规则文件:tools/ant/ant\u rules\u r3.xml
。我编辑了ant_rules_r3.xml,并将“ascii”替换为“UTF8”。

对于瑞典语字符集,我按照fhucho的建议做了。但是我不得不使用ISO-8859-1而不是UTF-8。因此,使用ISO编码可能更好。

我有android-10 SDK工具包,这就是我在构建项目时修复编码警告的方式。 *创建c:/myproject/build.properties文件 *重写默认的ANT变量

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

虽然在androidsdk中调整系统默认值当然是可能的,但这样的尝试可能会导致ANT的不可预测和非标准行为。系统的其他部分可能期望ANT的默认行为,或者更新将撤消您的更改。此外,如果您试图在不同的系统(如构建服务器或团队成员的计算机)上编译项目,则需要记住调整涉及的每个系统。因此,应避免并不建议进行系统调整

ANT构建过程接受系统范围默认值的每个项目覆盖。虽然每个项目都需要一个额外的文件,但它可能会在所有开发平台上提供更一致的构建行为,并简化开发、诊断和维护

我正在使用Ant1.8.4,并按照Whome的建议提供build.properties文件,但这是朝着正确方向迈出的一步。我必须为每个项目创建一个
ant.properties
文件,并按照Whome的建议提供覆盖

但是,在任何其他文件(如
local.properties
build.xml
文件)中提供这些覆盖是一个坏主意。这些文件由android工具创建和修改

我建议读者阅读
build.xml
文件,因为它有很好的文档记录,并且提供了关于如何使用Android ANT build系统的极好提示和说明

下一个有趣的阅读内容是位于
androidsdk/tools/ANT/build.xml
中的根ANT构建脚本。此文件将列出所有可覆盖的属性,例如:

java.target=1.6
verbose=true
但编码设置与Whome之前建议的一样:


任何正在寻找解决方案的人,在
gradle.properties
中设置以下内容,都可以为我解决问题


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

为了记录,这里的文件名为
android sdk/platforms/android-8/ant/ant_rules_r2.xml
## Override default ANT properties
java.encoding=ISO-8859-1