Android Studio 1.2-默认情况下项目编码不匹配

Android Studio 1.2-默认情况下项目编码不匹配,android,encoding,intellij-idea,android-studio,Android,Encoding,Intellij Idea,Android Studio,我有点像Android新手,我刚刚升级到Android Studio 1.2。当我创建一个新项目(API 16:Android 4.1(Jelly Bean))时,我立即得到以下警告: 警告:项目编码(windows-1252)与 Gradle生成文件(UTF-8)中指定的编码。这可能导致 严重的虫子设置(或单击Ctrl+Alt+S)并在Android Studio中查找文件编码。请参见下图作为参考 现在你有三个选择 更改项目编码以匹配UTF-8,因为Gradle和 Android Lint使

我有点像Android新手,我刚刚升级到Android Studio 1.2。当我创建一个新项目(API 16:Android 4.1(Jelly Bean))时,我立即得到以下警告:

警告:项目编码(windows-1252)与 Gradle生成文件(UTF-8)中指定的编码。这可能导致 严重的虫子<更多 信息…
打开文件编码 背景

这是我没有做任何更改或编写任何代码。我在tools.android.com()上读到了更多的信息,但它非常模糊,并且假设对正在发生的事情有了解(这就是“更多信息…”带给你的)。自从我升级到AndroidStudio 1.2,我的XML文件中的设计和文本选项卡甚至不会同步;无法编辑“设计”选项卡,但可以编辑XML文件的文本文件。我想这是一个相关的问题

为什么默认情况下它与此编码不匹配,我可以对此做些什么,应该使用什么作为默认编码


谢谢大家!

单击文件->设置(或单击Ctrl+Alt+S)并在Android Studio中查找文件编码。请参见下图作为参考

现在你有三个选择

  • 更改项目编码以匹配UTF-8,因为Gradle和 Android Lint使用此选项(推荐)
  • 或更改IDE编码以匹配其他编码
  • 或者干脆无视警告。如果到目前为止它对你有效,它将继续有效

(来源:)

看到警告后,可以直接单击“打开文件编码设置”,如下图所示。这将带您到与上述相同的位置。

您还可以在Android studio的右下角看到文件的当前编码。你也可以在那里换。见下图

您还可以像下面这样在build.gradle脚本中指定字符集

android {
    ...
    compileOptions {
        encoding "UTF-8"
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

根据评论,您需要进行渐变同步,以使其工作

而不是更改UTF-8以匹配系统默认值,我建议您将项目编码设置为UTF-8(文件->设置->编辑器->文件编码)。UTF-8是最常见的文件编码之一,它根据需要使用1到4个字节对字符进行编码,从而有效地利用了空间

谷歌建议使用UTF-8,Gradle和Android Lint都使用UTF-8:

升级到Android Studio 1.2后,我遇到了完全相同的问题


我现在或曾经有过同样的问题。所以我修改了它,使IDE和项目编码以及属性文件的默认编码都是UTF-8。但我一直在邮件的gradle sync选项卡中看到相同的警告。最后,我干脆关闭了那个标签,从此再也没有看到警告信息。如果警告条件再次应用,IDE可能会重新释放该选项卡。现在,当我创建项目时,既不会显示gradle sync选项卡,也不会显示警告消息。因此,可能警告是在一个make期间正确编写的,但在新make开始时应该被清除或以某种方式删除,但不是,这意味着它是IDE中的一个bug


但每次我创建一个新项目时,问题又出现了。每次创建新项目时,应该有一个使所有编码匹配的设置。

您可以通过单击文件->其他设置->默认设置来更改新项目的默认编码设置

在“编辑器”和“文件编码”下,可以将IDE编码和项目编码设置为相同的值,以避免在将来的项目中收到错误消息


在“文件->设置”下设置它将仅对当前打开的项目进行更改。

@user3290308本地属性和内容是自动生成的,不应进行调整。#该文件由Android Studio自动生成不要修改此文件--您所做的更改将被删除@user3290308我认为以管理员的身份关闭和打开它可能会解决您无法更改项目设置的特定问题。伙计们,请确保在完成此操作后执行渐变同步,否则单独执行此操作将不起作用