【解决】Android Studio编译APK中文乱码问题全攻略

Android Studio中APK中文乱码问题通常有几种解决方案。根据你的路径信息,这里是完整的解决方法:

1. 立即解决方案

方法一:修改gradle配置(推荐)

app/build.gradle 文件中添加以下配置:

gradle

复制代码
android {
    compileOptions {
        encoding "UTF-8"
    }
    
    tasks.withType(JavaCompile) {
        options.encoding = "UTF-8"
    }
}

方法二:全局配置编码

在项目根目录的 gradle.properties 文件中添加:

properties

复制代码
org.gradle.jvmargs=-Dfile.encoding=UTF-8
android.useAndroidX=true
kotlin.code.style=official

2. Android Studio 设置

修改IDE编码设置:

  1. File → Settings (或 Preferences → Settings

  2. Editor → File Encodings

  3. 设置以下项为 UTF-8

    • Global Encoding

    • Project Encoding

    • Default encoding for properties files

修改VM选项:

  1. 找到 studio64.exe.vmoptions 文件

    • Windows: C:\Users\[用户名]\AppData\Roaming\Google\AndroidStudio[版本]\

    • Mac: ~/Library/Preferences/AndroidStudio[版本]/

  2. 或者打开studio,Help--Edit Custom VM Options即可创建文件

  3. 添加:-Dfile.encoding=UTF-8

3. 清理和重建

bash

复制代码
# 清理项目
./gradlew clean

# 清理构建缓存
./gradlew cleanBuildCache

# 重新构建
./gradlew assembleDebug

或直接在Android Studio中:

  • Build → Clean Project

  • Build → Rebuild Project

4. 特定文件乱码解决

如果strings.xml乱码:

xml

复制代码
<!-- 确保文件编码为UTF-8 -->
<string name="app_name">中文名称</string>

检查文件编码:

  1. 右键点击文件

  2. File Properties → Text file encoding

  3. 选择 UTF-8

5. 命令行构建时指定编码

bash

复制代码
# Windows
chcp 65001
./gradlew assembleDebug -Dfile.encoding=UTF-8

# Linux/Mac
export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8"
./gradlew assembleDebug

6. 检查依赖库编码

如果第三方库导致乱码,在 app/build.gradle 中:

gradle

复制代码
dependencies {
    // 确保使用UTF-8编码的库版本
    implementation 'com.example:library:version' {
        exclude group: 'com.example', module: 'problem-module'
    }
}

7. 终极解决方案

如果以上方法都无效,可以尝试:

  1. 创建新项目,逐步迁移代码

  2. 重命名项目目录(有时候路径中有特殊字符会导致问题)

  3. 更新Android Studio和Gradle插件

验证解决

构建完成后,使用以下命令验证APK中的中文:

bash

复制代码
# 解压APK查看资源
apktool d app-debug.apk

# 或直接查看strings.xml
unzip -p app-debug.apk res/values/strings.xml

预防措施

  1. 统一团队编码:确保所有开发者使用UTF-8编码

  2. 版本控制配置 :在.gitattributes中添加:

    text

    复制代码
    *.xml text encoding=utf-8
    *.gradle text encoding=utf-8
    *.java text encoding=utf-8
    *.kt text encoding=utf-8
  3. IDE配置同步:使用Settings Repository同步团队配置

选择最适合你情况的方案开始尝试,通常方法一 + 清理重建能解决大部分问题。

相关推荐
Sun_gentle3 天前
android studio创建flutter项目
android·flutter·android studio
我命由我123453 天前
在 Android Studio 中,新建 AIDL 文件按钮是灰色
android·ide·android studio·安卓·android jetpack·android-studio·android runtime
我命由我123453 天前
Android 多进程开发 - AIDL 回调、RemoteCallbackList、AIDL 安全校验
android·java·安全·android studio·安卓·android-studio·android runtime
大狗狗5 天前
AndroidStudio开发环境
android studio
L-李俊漩10 天前
Android studio修改gradle路径
android·android studio
周杰伦fans12 天前
Android Studio Git 管理最佳实践
git·elasticsearch·android studio
火焰中舞蹈的小孩13 天前
Unity和Android Studio相互调用 CH340在unity中调用
android·ide·android studio
FunW1n13 天前
Android Studio与Hook模块开发相关问题及实现方案梳理
android·ide·android studio
我命由我1234514 天前
Kotlin 面向对象 - 匿名内部类、匿名内部类简化
android·java·开发语言·java-ee·kotlin·android studio·android jetpack
catchadmin14 天前
“Fatal error: require(): Failed opening required...” 以及如何彻底避免它再次出现
android·ide·android studio