Android 中英文切换及遇到的问题

背景:近期由于项目上的需求接受到了一个中英文切换需求。只需要在切换中英系统语言的时候改变app的名称为中文或英文就可以。关于如何实现这些可以参考如下文章:

实现中英文切换的方法:

Android app切换语言、国际化的纠缠: https://blog.csdn.net/qq_36255612/article/details/79651021

android开发中英文切换:https://blog.csdn.net/sinat_25001099/article/details/50663265

Android 7.0以上版本,如何实现应用内语言切换:https://www.jianshu.com/p/32ff13db1f0d

遇到的问题:

在已经添加了相应英文资源的状况下,测试发现。切换至英文语言后app的名称还是没有改变,打开apk文件后发现,如下图:

通过分析发现应该是gradle打包apk的时候没有将相应的资源打包进来,查看gradle配置文件发现。

defaultConfig {

applicationId "com.****"

minSdkVersion and.minSdkVersion

targetSdkVersion and.targetSdkVersion

versionCode and.versionCode

versionName and.versionName

multiDexEnabled true

vectorDrawables.useSupportLibrary = true

javaCompileOptions {

annotationProcessorOptions {

arguments = [moduleName: project.getName()]

}

}

ndk {

abiFilters 'armeabi', 'x86'

}

resConfigs "zh"

}

将其修改为 resConfigs “zh”,“en-rUS”

再次打包发现依然没有对应的英文资源。

再次排查项目配置发现,在渠道的配置文件中找到:

def doFlavor(NamedDomainObjectContainerproductFlavors, Object it, String channel, boolean isSetFlavor) {

//创建渠道

ProductFlavor flavor = productFlavors.create(channel)

//lib中不能设置ApplicationId

if (isSetFlavor) {

//设置ApplicationId(包名)

String applicationId = it.applicationId

if (applicationId != null && applicationId.trim().length() > 0) {

flavor.applicationId = applicationId

}

//设置ApplicationId后缀,

String idSuffix = it.applicationidSuffix

if (idSuffix != null && idSuffix.trim().length() > 0) {

flavor.applicationIdSuffix = idSuffix

}

}

def list

if (it.abiFilters == null) {

list = new ArrayList(1)

list.add("armeabi")

} else {

def ABIs = it.abiFilters.split(",")

if (ABIs != null && ABIs.length > 0) {

list = Arrays.asList(ABIs)// new ArrayList(2)

} else {

list = new ArrayList(1)

list.add("armeabi")

}

}

// 特定渠道配置需要加入的Abi 例如armeabi,armeabi-v7a,arm64-v8a,x86,x86_64,mips,mips64

flavor.ndk.setAbiFilters(list)

println("doFlavor-------->abi = " + list)

flavor.dimension = it.dimension

//设置小版本号

String versionSuffix = it.minorVersion

if (versionSuffix != null && versionSuffix.trim().length() > 0) {

flavor.versionNameSuffix = versionSuffix

}

//设置自定义BuildConfig属性

def fields = getConfigFields(it.buildConfigFields)

if (fields != null) {

flavor.addBuildConfigFields(fields)

}

//清单文件配置

flavor.manifestPlaceholders = it.manifestPlaceholders

//剔除不需要资源---------------此处只保留了配置过的资源

def res = it.resConfig

if (res != null && res.size() > 0) {

flavor.resConfigs(res)

}

//渠道分辨率

def density = it.density

if (density != null) {

GenerateValueFilesPlugin.generateDensity(channel, density)

}

}

最后通过在渠道配置的文件中添加了resConfig,如下图:

再次打包后的结果:如下

总结:出现资源打不进去的情况极有可能就Gradle中的配置原因。需要仔细查看Gradle配置文件中是否忽略某些资源。

android 错误中英互译,Android 中英文切换及遇到的问题相关推荐

  1. android 错误中英互译,中英文翻译器应用的官方Android版本v3.1.1

    汉英翻译是一种快速的语音翻译器. 无需键入即可将其快速音译为所需内容,例如翻译成中文和英文. 智能语音翻译工件,无需键入可以说翻译很简单,并且操作简单快捷. 随时翻译非常好. 中英文翻译器应用功能介绍 ...

  2. android 错误中英互译,安卓手机Recovery模式刷机情况下的中英文对照翻译

    recovery ,用 关机键 音量 /- (依机型不同而不同,不过有些机型可能没有刷入recovery,可自行刷入.)即可进入recovery界面,在这个界面你可以直接用sd 卡上的zip格式的ro ...

  3. 计算机网络中英互译,计算机网络中英文互译.doc

    --- - 计算机网络中英翻译 ACK (ACKnowledgement) 确 认 帧 ADSL (Asymmetric Digital Subscriber Line) 非 对 称 数 字 用 户 ...

  4. IntelliJ IDEA/Android Studio 翻译插件,可中英互译。

    TranslationPlugin 项目地址:YiiGuxing/TranslationPlugin 简介:IntelliJ IDEA/Android Studio 翻译插件,可中英互译.    In ...

  5. woocommerce产品选项描述修改_简历修改服务:中文修改、英文修改、中英互译、简历定制,名师一对一指导修改!...

    简历,是你接触 HR 的第一步 如果你无法通过简历敲开大门 你面试能力再强,综合素质再高,都无用! 做了那么多网申,投了那么多简历.都是是石沉大海,渺无音讯.你就不想想,是简历有问题吗? 简历是找实习 ...

  6. 中英互译软件测试计划

    中英互译软件测试计划 1.引言 1.1   编写目的 测试软件的中英互译能力,通过给出中文单独的字,句,英文的单独单词,句子以及中英混合,查看翻译结果来确定软件的实用性和准确度. 1.2   项目背景 ...

  7. 怎样快速实现整篇文档中英互译

    对于一篇中文word文档,怎么才能快速翻译成纯英文的呢?有很多同学说可以将里面的文字直接复制进浏览器进行翻译,在将其拷贝出来即可,但是对于一个几十页的文档而言,这样操作显然不是很高效.下面将文字翻译的 ...

  8. 怎样快速实现整篇文档中英互译?这里有简单的方法

    对于一篇中文word文档,怎么才能快速翻译成纯英文的呢?有很多同学说可以将里面的文字直接复制进浏览器进行翻译,在将其拷贝出来即可,但是对于一个几十页的文档而言,这样操作显然不是很高效.下面将文字翻译的 ...

  9. 非常简单的中英互译在线翻译操作方法

    非常简单的中英互译在线翻译操作方法?无论在工作中还是生活中,我们总能遇到各种翻译问题,尤其是中英文翻译,但是很多人的英文都不好,比如小编.那么如何快捷而又专业的完成中英互译呢?如果你不知道这个问题该如 ...

最新文章

  1. 使用Apache Archiva搭建Maven Repository Server
  2. unity2019,打包APK时的gradle错误问题
  3. 如何在Ubuntu上查看和写入系统日志文件
  4. LeetCode 1048. 最长字符串链(哈希+DP)
  5. pm2 多个线程输出一个日志_PM2 源码分析
  6. MySQL用户管理和访问权限
  7. 调试M2det算法train自己的数据(VOC2007)
  8. CISP 考试教材《第 1 章 知识域:信息安全保障》知识整理
  9. 汉英词典python
  10. 搭档之家|立秋·暑去凉来 叶落知秋
  11. 如何入门嵌入式?ARM嵌入式开发板学习方法步骤
  12. 学习B站UP雨落弦鸣的《超简单效果超好的个人网站博客搭建(对小白很友好)》中遇到的问题
  13. 复习简记转发器、网桥、路由器、网关的功能
  14. 风场可视化:绘制轨迹
  15. 杨超越的经历故事性太强了,现实版的娱乐圈爽文
  16. 网络设备的连接以及配置
  17. 图解IFRS 9 金融工具(13)实施时间及结语
  18. 项目结束后,哪些经验教训需要总结?
  19. Unity AssetBundle介绍
  20. 2020-03-05

热门文章

  1. A brief introduction to complex analysis
  2. 请记得,我不是个好人
  3. 3.5Bootstrap组件篇之导航条
  4. Linux01(VM)
  5. 送你一把学习【线性代数】的钥匙
  6. 用python写一个迁徙率计算代码
  7. 06512oracle数据库,记一次ORA-06512、ORA-29283
  8. 什么是BFC,BFC解决哪些问题
  9. Leetcode 507: 完美数
  10. 往届学生软件工程作业参考-需求分析