最近、Android Studio from2.2.3 to 2.3.0
プロジェクトが2.2.3で正常に実行されていたが、 2.2.3 to 2.3.0
からプロジェクトの依存関係クラスパスを更新すると、string.xml
から多くの翻訳の欠落エラーが発生します。
誰がそれが起こっているのか、これらのエラーを解決する方法を教えてもらえますか?
これを修正する多くの方法があります:
最初の方法:
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>
第三の方法:
ADT
でwindow->Preferences->Android->Lint Error Checking
に移動します
そこでMissing Translation
を見つけ、そのSeverity
をWarning
に変更します。
参照リンク:
http://www.fasteque.com/missingtranslation-issue-for-release-builds/
お役に立てば幸いです。
私はまったく同じ問題に直面していました。私の観察に基づいて、この問題はGradleプラグインバージョン2.3.0で導入されました。プロジェクトに、アプリや他のモジュールよりも多くの言語をサポートするモジュールがある場合に発生します。そのようなモジュールの翻訳の編集を開始することもできますが、これにより保守が難しくなります。
ここでの提案のいずれかまたは同様の質問を使用してリントチェックを無効にすると、サポートしている言語の翻訳が欠落しているアプリの実際の翻訳エラーも無視されます。その後は、文字列を非常に慎重に維持する必要があります。
もう1つありますまた次善、オプション:プラグインのバージョンをbuild.gradleでこれらの症状を示さない最後のバージョンに戻します。
dependencies {
classpath 'com.Android.tools.build:gradle:2.2.3'
}
ただし、重要な警告/エラーを失うことなく、古いツールバージョンに戻すことなく、この作業を行う方法があります。 Googleのドキュメント と この回答 にあります。
Android {
defaultConfig {
...
resConfigs "en", "fr"
}
}
これにより、不要なリソースとそれらに伴う警告とエラーが削除されます。コードを更新しましたが、今ではうまくビルドされています。
新しいGradleプラグインバージョンで導入された別の問題があります:誤検知、つまり翻訳不可とマークした文字列の翻訳が見つからないというエラーが発生した場合、文字列名が別のモジュールに存在するかどうかを確認してください。その場合、翻訳の名前を変更するか翻訳を指定すると、エラーが消えます。