2015-05-03 17 views
43

Tôi là một người mới chơi Android và tôi vừa nâng cấp lên Android Studio 1.2. Khi tôi thực hiện một dự án mới (API 16: Android 4.1 (Jelly Bean)), tôi ngay lập tức nhận được cảnh báo sau đây:Android Studio 1.2 - Mã hóa dự án không khớp theo mặc định

Cảnh báo: Mã hóa dự án (windows-1252) không phù hợp với mã hóa quy định tại các Gradle build files (UTF-8). Điều này có thể dẫn đến lỗi nghiêm trọng.
More Thông tin ...
Open File Encoding Cài đặt

này mà không có tôi đã thực hiện bất kỳ thay đổi hay viết bất kỳ mã nào. Tôi đọc thêm thông tin về tools.android.com (http://tools.android.com/knownissues/encoding) nhưng nó là vô cùng mơ hồ và giả định kiến ​​thức về những gì đang xảy ra (đây là nơi "Thông tin thêm ..." sẽ đưa bạn). Vì tôi đã cập nhật lên Android Studio 1.2, các tab thiết kế và văn bản trong các tệp XML của tôi thậm chí sẽ không đồng bộ hóa; không thể chỉnh sửa tab thiết kế trong khi tệp văn bản của tệp XML có thể được chỉnh sửa. Tôi cho rằng đó là một vấn đề liên quan.

Tại sao không khớp mã hóa này theo mặc định, tôi có thể làm gì với mã hóa và tôi nên sử dụng mã nào làm mã hóa mặc định?

Cảm ơn bạn!

Trả lời

77

Bấm File -> Cài đặt (hoặc bấm tổ hợp phím Ctrl + Alt + S) và tìm Mã hoá tập tin trong Android Studio của bạn. Xem hình dưới đây để tham khảo.

Bây giờ bạn có ba tùy chọn

  • mã hóa Thay đổi dự án để phù hợp với UTF-8 vì cả hai Gradle và Android Lint sử dụng này (đề nghị),
  • hoặc thay đổi mã hóa IDE để phù hợp với mã hóa khác,
  • hoặc chỉ đơn giản là bỏ qua cảnh báo. Nếu nó làm việc ra cho bạn cho đến nay, nó sẽ tiếp tục làm việc anyway

http://shrani.si/f/3V/p7/5xt1uxV/encoding.png

Khi bạn nhìn thấy cảnh báo, bạn có thể trực tiếp bấm vào "Open File Encoding Settings" như thể hiện trong hình dưới đây. Thao tác này sẽ đưa bạn đến cùng một địa điểm như được mô tả ở trên.

enter image description here

Bạn cũng có thể xem bảng mã hiện tại của tệp ở góc dưới cùng bên phải của Android studio. Bạn cũng có thể thay đổi nó ở đó. Xem hình ảnh bên dưới.

IDE Encoding

Ngoài ra, bạn có thể chỉ định charset trong kịch bản build.gradle bạn như thế này

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

Theo Ashl7's bình luận, bạn cần phải làm một đồng bộ gradle để làm việc này

+0

@ user3290308 các thuộc tính cục bộ và nội dung được tạo tự động và không nên được làm nóng. ## Tệp này được Android Studio tạo tự động. # Không sửa đổi tệp này - THAY ĐỔI CỦA BẠN S ER ĐƯỢC XÓA! –

+0

@ user3290308 Tôi nghĩ việc đóng và mở nó với tư cách là quản trị viên có thể giải quyết vấn đề cụ thể này, nơi bạn không thể thay đổi trong cài đặt dự án. –

+0

Cảm ơn bạn. Bạn đã cứu tôi rất nhiều thất vọng. – Solace

14

Thay vì thay đổi UTF-8 để phù hợp với mặc định hệ thống, tôi khuyên bạn nên thiết lập mã hóa dự án của bạn thành UTF-8 (File -> Settings -> Editor -> File Encodings).UTF-8 là một trong những mã hóa tệp phổ biến nhất, và nó sử dụng không gian hiệu quả bằng cách mã hóa các ký tự sử dụng từ 1 đến 4 byte khi cần thiết.

Google khuyến cáo sử dụng UTF-8, và cả hai Gradle và Android Lint sử dụng UTF -8: File Encoding for Android Studio

tôi đã có vấn đề chính xác cùng sau khi nâng cấp lên Android Studio 1.2.

Screen capture of Android Studio settings window

4

Tôi đang gặp vấn đề tương tự. Vì vậy, tôi đã thay đổi nó để mã hóa IDE và dự án và mã hóa mặc định cho các tệp thuộc tính đều là UTF-8. Nhưng tôi vẫn thấy cảnh báo tương tự trong tab đồng bộ hóa gradle của các tin nhắn. Sau đó, cuối cùng tôi chỉ cần đóng tab đó, và đã không nhìn thấy thông điệp cảnh báo kể từ đó. Có lẽ IDE sẽ reraise tab đó nếu điều kiện cảnh báo một lần nữa áp dụng. Bây giờ khi tôi thực hiện dự án, cả tab đồng bộ hóa gradle lẫn thông báo cảnh báo đều không xuất hiện. Vì vậy, có thể cảnh báo được viết một cách thích hợp trong một lần thực hiện, nhưng cần phải được xóa hoặc bằng cách nào đó bị xóa khi bắt đầu một công việc mới, nhưng không, có nghĩa là nó là một lỗi trong IDE.

Nhưng mỗi lần tôi tạo một dự án mới, vấn đề lại xuất hiện trở lại. Có phải là một thiết lập để làm cho tất cả các mã hóa để phù hợp với mỗi khi một dự án mới được tạo ra.

1

Bạn có thể thay đổi cài đặt mã hóa mặc định cho các dự án mới bằng cách nhấp vào Tệp -> Cài đặt khác -> Cài đặt mặc định.

Trong "Trình chỉnh sửa" và "Mã hóa tệp", bạn có thể đặt Mã hóa IDE và Mã hóa dự án thành cùng một giá trị để tránh nhận được thông báo lỗi với các dự án trong tương lai.

Đặt nó trong Tệp -> Cài đặt sẽ thay đổi nó chỉ dành cho dự án hiện đang mở.

Các vấn đề liên quan