Android应用程序打包时,出现错误:"XXX" is not translated in .....

本文解答了在使用Eclipse ADT打包Android应用时遇到的app_name等字符串未翻译的问题。提供了关闭错误检查、修复字符串翻译、定义非翻译字符串资源文件等解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:当我们开发完成一个Android应用程序后,在发布该应用程序之前必须要经过的一步时打包应用程序。

选择Eclipse ADT打包应用程序的过程如下:


可是在这时,会出现如下提示:


并且原本没有错误的程序(values/strings.xml)也会出现如下错误提示:

[html]   view plain copy
  1. "app_name" is not translated in "af" (Afrikaans), "am" (Amharic), "ar" (Arabic), "bg" (Bulgarian), "ca" (Catalan),  
  2. "cs" (Czech), "da" (Danish), "de" (German), "el" (Greek), "en-rGB" (English: United Kingdom), "en-rIN" (English:  
  3. India), "es" (Spanish), "es-rUS" (Spanish: United States), "et-rEE" (Estonian: Estonia), "fa" (Persian),  
  4. "fi" (Finnish), "fr" (French), "fr-rCA" (French: Canada), "hi" (Hindi), "hr" (Croatian), "hu" (Hungarian), "hy- 
  5. rAM" (Armenian: Armenia), "in" (Indonesian), "it" (Italian), "iw" (Hebrew), "ja" (Japanese), "ka-rGE" (Georgian:  
  6. Georgia), "km-rKH" (Khmer: Cambodia), "ko" (Korean), "lo-rLA" (Lao: Lao People's Democratic Republic),  
  7. "lt" (Lithuanian), "lv" (Latvian), "mn-rMN" (Mongolian: Mongolia), "ms-rMY" (Malay: Malaysia), "nb" (Norwegian  
  8. Bokm?l), "nl" (Dutch), "pl" (Polish), "pt" (Portuguese), "pt-rPT" (Portuguese: Portugal), "ro" (Romanian),  
  9. "ru" (Russian), "sk" (Slovak), "sl" (Slovene), "sr" (Serbian), "sv" (Swedish), "sw" (Swahili), "th" (Thai),  
  10. "tl" (Tagalog), "tr" (Turkish), "uk" (Ukrainian), "vi" (Vietnamese), "zh-rCN" (Chinese: China), "zh-rHK" (Chinese:
  11. Hong Kong), "zh-rTW" (Chinese: Taiwan, Province of China), "zu" (Zulu) 
[html]   view plain copy
  1. "app_name" is not translated in "af" (Afrikaans), "am" (Amharic), "ar" (Arabic), "bg" (Bulgarian), "ca" (Catalan),   
  2.  "cs" (Czech), "da" (Danish), "de" (German), "el" (Greek), "en-rGB" (English: United Kingdom), "en-rIN" (English:   
  3.  India), "es" (Spanish), "es-rUS" (Spanish: United States), "et-rEE" (Estonian: Estonia), "fa" (Persian),   
  4.  "fi" (Finnish), "fr" (French), "fr-rCA" (French: Canada), "hi" (Hindi), "hr" (Croatian), "hu" (Hungarian), "hy-  
  5.  rAM" (Armenian: Armenia), "in" (Indonesian), "it" (Italian), "iw" (Hebrew), "ja" (Japanese), "ka-rGE" (Georgian:   
  6.  Georgia), "km-rKH" (Khmer: Cambodia), "ko" (Korean), "lo-rLA" (Lao: Lao People's Democratic Republic),   
  7.  "lt" (Lithuanian), "lv" (Latvian), "mn-rMN" (Mongolian: Mongolia), "ms-rMY" (Malay: Malaysia), "nb" (Norwegian   
  8.  Bokm?l), "nl" (Dutch), "pl" (Polish), "pt" (Portuguese), "pt-rPT" (Portuguese: Portugal), "ro" (Romanian),   
  9.  "ru" (Russian), "sk" (Slovak), "sl" (Slovene), "sr" (Serbian), "sv" (Swedish), "sw" (Swahili), "th" (Thai),   
  10.  "tl" (Tagalog), "tr" (Turkish), "uk" (Ukrainian), "vi" (Vietnamese), "zh-rCN" (Chinese: China), "zh-rHK" (Chinese:   
  11.  Hong Kong), "zh-rTW" (Chinese: Taiwan, Province of China), "zu" (Zulu)  

是什么原因呢?原因如下:

在Android SDK Tool r19之后, Export的时候遇到xxx is not translated in yyy, zzz的问题。

例如说"auto_name" is not translated in zh, zh_CN.

这是因为Android SDK Tool 將 ANDROID_LINT_COMPLETE_REGIONS 改为了需要检查。


如何解决呢?


其实,以上提示已经给我们答案。一种是“fix these before running Export ”,另一种是“turn off 'Run full error check when exporting app'”

方法如下:

先说后者:“turn off 'Run full error check when exporting app'“

(1)在Eclipse中打开Preference,按下图操作:


(2)再说前者:“fix these before running Export ”

操作如下图所示:


双击选择4,会在5的左侧出现对该问题的描述,如下:


框中也给我们三种解决方法。
即:
1》If the string should not be translated, you can add the attribute translatable="false" on the <string> element,


这种方法只适合数量较少的情况下。

2》字符串数量较大的情况,会很麻烦,这时可以采用另一种方法:

or you can define all your non-translatable strings in a resource file called donottranslate.xml.

即我们可以将所有不需要non-translatable 的字符串统一放入一个名叫donottranslate.xml的文件中。

在values新建donottranslate.xml文件,并把不需要non-translatable 的字符串放入其中.

donottranslate.xml:

[html]   view plain copy
  1. <span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?> 
  2. <resources> 
  3.     <string name="app_name">UMengDemo</string> 
  4.     <string name="action_settings" >Settings</string> 
  5.     <string name="sharePic_text" >分享本地图片</string></span><pre name="code" class="html"style="text-indent: 0.10000000149011612px;"><span style="font-size:14px;"></resources></span> 
[html]   view plain copy
  1. <span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.     <string name="app_name">UMengDemo</string>  
  4.     <string name="action_settings" >Settings</string>  
  5.     <string name="sharePic_text" >分享本地图片</string></span><pre name="code" class="html" style="text-indent: 0.10000000149011612px;"><span style="font-size:14px;"></resources></span>  

3》Or, you can ignore the issue with a tools:ignore="MissingTranslation" attribute.

第三种方法,就是用tools:ignore="MissingTranslation“ 属性直接忽略这个问题

以上操作完成后,最好选择“Clean”一下项目,方法如下:



这样就可以解决以上问题了。

此处对照修改发现如下错误AndroidManifest.xml文件的错误错误处代码:android:theme="@style/Theme.FloatingSearchApp"> 错误信息:无法解析符号 '@style/Theme.FloatingSearchApp' 错误处代码:<activity android:name=".MainActivity"> 错误信息:As of Android 12, `android:exported` must be set; use `true` to make the activity available to other apps, and `false` otherwise. For launcher activities, this should be set to `true`. 错误处代码:<service android:name=".FloatingWindowService" android:enabled="true" android:exported="false" android:stopWithTask="false" android:foregroundServiceType="mediaProjection" /> 错误信息:foregroundServiceType:mediaProjection requires permission:[android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION] FloatingWindowService.kt文件的错误错误处代码:registerReceiver(sightControlReceiver, IntentFilter(ACTION_TOGGLE_SIGHT)) 错误信息:`sightControlReceiver` is missing `RECEIVER_EXPORTED` or `RECEIVER_NOT_EXPORTED` flag for unprotected broadcasts registered for com.example.floatingsearchapp.TOGGLE_SIGHT 错误处代码:.setSmallIcon(R.drawable.ic_notification) 错误信息:Unresolved reference: ic_notification 错误处代码:runOnUiThread { 错误信息:Unresolved reference: runOnUiThread:194 错误处代码:runOnUiThread { 错误信息:Unresolved reference: runOnUiThread:213 错误处代码:runOnUiThread { 错误信息:Unresolved reference: runOnUiThread:220 错误处代码:runOnUiThread { 错误信息:Unresolved reference: runOnUiThread:226 错误处代码:return View.OnTouchListener { view, event -> when (event.action) { MotionEvent.ACTION_DOWN -> { offsetX = event.rawX - sightParams.x offsetY = event.rawY - sightParams.y view.alpha = 0.7f // 半透明反馈 } 错误信息:`onTouch` lambda should call `View#performClick` when a click is detected 错误处代码:private fun recognizeTextAtLocation(x: Int, y: Int) { 错误信息:Parameter 'x' is never used 错误信息:Parameter 'y' is never used 错误处代码:private fun updateQuestion(text: String) { 错误信息:Parameter 'text' is never used 错误处代码:private fun updateQuestion(text: String) { 错误信息:Value of parameter 'text' is always '"如何实现Android悬浮窗?"' 错误处代码:questionTextView.text = "问题: $ text" 错误信息:Do not concatenate text displayed with `setText`. Use resource string with placeholders. 错误信息:String literal in `setText` can not be translated. Use Android resources instead. 错误处代码:private fun updateAnswer(text: String) { 错误信息:Parameter 'text' is never used 错误信息:Value of parameter 'text' is always '"使用WindowManager添加View并设置LayoutParams"' 错误处代码:answerTextView.text = "答案: $ text" 错误信息:Do not concatenate text displayed with `setText`. Use resource string with placeholders. 错误信息:String literal in `setText` can not be translated. Use Android resources instead. MainActivity.kt文件的错误错误处代码:val startServiceBtn: Button = findViewById(R.id.startServiceBtn) 错误信息:Unresolved reference: startServiceBtn 错误处代码:val stopServiceBtn: Button = findViewById(R.id.stopServiceBtn) 错误信息:Unresolved reference: stopServiceBtn 错误处代码:val toggleSightBtn: Button = findViewById(R.id.toggleSightBtn) 错误信息:Unresolved reference: toggleSightBtn 错误处代码:Manifest.permission.CAPTURE_VIDEO_OUTPUT 错误信息:Unresolved reference: CAPTURE_VIDEO_OUTPUT 错误处代码:arrayOf(Manifest.permission.CAPTURE_VIDEO_OUTPUT) 错误信息:Unresolved reference: CAPTURE_VIDEO_OUTPUT 错误处代码:if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 错误信息:Unnecessary; `SDK_INT` is always >= 24 错误处代码:override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { 错误信息:This declaration overrides deprecated member but not marked as deprecated itself. Please add @Deprecated annotation or suppress. See https://youtrack.jetbrains.com/issue/KT-47902 for details activity_main.xml文件的错误错误处代码:android:id="@+id/startServiceBtn" 错误信息:无法解析符号 '@+id/startServiceBtn' 错误处代码:android:id="@+id/stopServiceBtn" 错误信息:无法解析符号 '@+id/stopServiceBtn' 错误处代码:android:id="@+id/toggleSightBtn" 错误信息:无法解析符号 '@+id/toggleSightBtn' 错误处代码:android:text="悬浮搜索应用" 错误信息:Hardcoded string "悬浮搜索应用", should use `@string` resource 错误处代码:android:text="启动悬浮窗服务" 错误信息:Hardcoded string "启动悬浮窗服务", should use `@string` resource 错误处代码:android:text="停止悬浮窗服务" 错误信息:Hardcoded string "停止悬浮窗服务", should use `@string` resource 错误处代码:android:text="显示/隐藏瞄准镜" 错误信息:Hardcoded string "显示/隐藏瞄准镜", should use `@string` resource 错误处代码:android:text="使用说明:\n1. 启动服务后,信息窗将显示在屏幕右上角\n2. 点击'显示瞄准镜'按钮定位文本\n3. 拖动瞄准镜到文本位置后释放进行识别\n4. 识别结果将显示在信息窗中" 错误信息:Hardcoded string "使用说明:\n1. 启动服务后,信息窗将显示在屏幕右上角\n2. 点击'显示瞄准镜'按钮定位文本\n3. 拖动瞄准镜到文本位置后释放进行识别\n4. 识别结果将显示在信息窗中", should use `@string` resource info_window.xml文件的错误错误处代码:android:text="就绪" 错误信息:Hardcoded string "就绪", should use `@string` resource sight_window.xml文件的错误错误处代码:android:contentDescription="瞄准镜"/> 错误信息:Hardcoded string "瞄准镜", should use `@string` resource
最新发布
06-22
项目创建后有如下错误AndroidManifest.xml文件的错误: 无法解析符号 '@style/Theme.FloatingSearchApp' READ_EXTERNAL_STORAGE is deprecated (and is not granted) when targeting Android 13+. If you need to query or interact with MediaStore or media files on the shared storage, you should instead use one or more new storage permissions: `READ_MEDIA_IMAGES`, `READ_MEDIA_VIDEO` or `READ_MEDIA_AUDIO`. Redundant label can be removed DatabaseHelper.kt文件的错误: 应为 <database name> 或 <defined table name>,得到 '$' Value must be ≥ 0 but `getColumnIndex` can be -1 Parameter 'question' is never used FloatingWindowService.kt文件的错误: Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element) 'TYPE_PHONE: Int' is deprecated. Deprecated in Java `onTouch` should call `View#performClick` when a click is detected Do not concatenate text displayed with `setText`. Use resource string with placeholders. String literal in `setText` can not be translated. Use Android resources instead. Variable 'answer' is never used Do not concatenate text displayed with `setText`. Use resource string with placeholders. String literal in `setText` can not be translated. Use Android resources instead. MainActivity.kt文件的错误: Unresolved reference: activity_main This declaration overrides deprecated member but not marked as deprecated itself. Please add @Deprecated annotation or suppress. See https://youtrack.jetbrains.com/issue/KT-47902 for details TextRecognizer.kt文件的错误No value passed for parameter 'options' 'getter for defaultDisplay: Display!' is deprecated. Deprecated in Java 'getMetrics(DisplayMetrics!): Unit' is deprecated. Deprecated in Java Parameter 'context' is never used floating_window.xml文件的错误: Hardcoded string "问题将显示在这里", should use `@string` resource Hardcoded string "答案将显示在这里", should use `@string` resource
06-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值