web-dev-qa-db-ja.com

Android更新後にStudioでエラーが表示される(翻訳が見つからない))

最近、Android Studio from2.2.3 to 2.3.0プロジェクトが2.2.3で正常に実行されていたが、 2.2.3 to 2.3.0からプロジェクトの依存関係クラスパスを更新すると、string.xmlから多くの翻訳の欠落エラーが発生します。

enter image description here

誰がそれが起こっているのか、これらのエラーを解決する方法を教えてもらえますか?

21
Kapil Rajput

これを修正する多くの方法があります:

最初の方法:

Build.gradleに追加します。

Android {
     lintOptions {
        disable 'MissingTranslation'
    }
}

2番目の方法:

次のように、stringsファイルのignore名前空間のtools属性です。

<?xml version="1.0" encoding="utf-8"?>
<resources
  xmlns:tools="http://schemas.Android.com/tools"
  tools:ignore="MissingTranslation" >

  <!-- your strings here; no need now for the translatable attribute -->

</resources>

第三の方法:

ADTwindow->Preferences->Android->Lint Error Checkingに移動します

そこでMissing Translationを見つけ、そのSeverityWarningに変更します。

参照リンク:

http://www.fasteque.com/missingtranslation-issue-for-release-builds/

お役に立てば幸いです。

44
vanloc

私はまったく同じ問題に直面していました。私の観察に基づいて、この問題はGradleプラグインバージョン2.3.0で導入されました。プロジェクトに、アプリや他のモジュールよりも多くの言語をサポートするモジュールがある場合に発生します。そのようなモジュールの翻訳の編集を開始することもできますが、これにより保守が難しくなります。

ここでの提案のいずれかまたは同様の質問を使用してリントチェックを無効にすると、サポートしている言語の翻訳が欠落しているアプリの実際の翻訳エラーも無視されます。その後は、文字列を非常に慎重に維持する必要があります。

もう1つありますまた次善、オプション:プラグインのバージョンをbuild.gradleでこれらの症状を示さない最後のバージョンに戻します。

dependencies {
    classpath 'com.Android.tools.build:gradle:2.2.3'
}

ただし、重要な警告/エラーを失うことなく、古いツールバージョンに戻すことなく、この作業を行う方法がありますGoogleのドキュメントこの回答 にあります。

Android {
    defaultConfig {
        ...
        resConfigs "en", "fr"
    }
}

これにより、不要なリソースとそれらに伴う警告とエラーが削除されます。コードを更新しましたが、今ではうまくビルドされています。

新しいGradleプラグインバージョンで導入された別の問題があります:誤検知、つまり翻訳不可とマークした文字列の翻訳が見つからないというエラーが発生した場合、文字列名が別のモジュールに存在するかどうかを確認してください。その場合、翻訳の名前を変更するか翻訳を指定すると、エラーが消えます。

11
jerry