AndroidStudioのプロジェクトでハードコードされたすべての文字列を見つけるにはどうすればよいですか


89

Android Studio(beta)0.84のプロジェクトで、ハードコードされたすべての文字列を見つけて抽出する必要があります。Find Bugsのような静的分析ツールが必要です。これを一度に実行して、各メッセージをステップ実行し、文字列をリソースファイルに抽出できるようにします。プロセス全体が自動化されているとさらに良いでしょう。

Android Studio(beta)0.84では、ファイル/設定/ FindBugs-IDEAは、[レポート]タブのオプションとしてI18Nを表示します。しかし、私はそれを機能させる方法を理解することができません。

提案をありがとう。

回答:


124

以下のよう@Maorハダドと他のupvotesが私を提案:私はそう、答えに私のコメントを変換します。

Android Studio 1.2.2以降、に新しいオプションがあります

"Analyse > Run inspection By Name" => "Hardcoded strings".

私はそれを使用しましたが、現在のバージョンでは「ハードコードされたテキスト」(xmlファイルのみをチェックする)よりもはるかに信頼性が高いようです。

ここに見られるリンク


32
念のために言っHardcoded Textておき.XMLますが、Hardcoded Strings検査ではハードコードされたテキストが.javaファイルに返されますが、検査ではハードコードされたテキストがファイルに返されます。
Loyalar 2016年

ここでは同様の問題に私の答えをご覧くださいstackoverflow.com/a/56121083/3904109
DragonFire

同様のタスクがありましたが、Flutterプロジェクト用でした。上記の検査では期待した結果が得られなかったので、正規表現を試してみました。".+\Q\E二重引用符を一重引用符に置き換えると、すべての文字列が一重引用符で囲まれます。
pbertsch

115

「分析>名前で検査を実行...」に移動し、「ハードコードされたテキスト」と入力します。プロジェクト全体に対してこれを実行すると、ハードコードされたテキストインスタンスを表示する検査結果パネルが表示されます。

また、AndroidStudio>設定>検査>ハードコードされたテキストに移動して、実行方法と、検査から除外される特殊なケース(ある場合)を正確に指定することもできます。


2
これは素晴らしく機能しました!ありがとう。ところで、テキストに基づいて生成されたリソースIDを使用してvalues.xmlファイルに文字列を自動的に抽出するツールはありますか?それは大きな助けになるでしょう。次に、リソースID名をもっと短いものに変換します。
Farrukh Najmi 2014

自動についてはわかりませんが、文字列の1つを強調表示して、Option-Enterキーを押すと、その文字列を自動的に抽出するオプションが表示されると思いますが、名前を手動で入力する必要があります。
ケビンコポック2014

3
AndroidStudioの非常に優れた機能を+1します。結果からandroid.util.Logメッセージを除外する方法を見つけた人はいますか?(私の結果の約95%!)
ベンクレイトン

6
詳細情報:Android Studio 1.2.2は、「名前による検査の実行」=>「ハードコードされた文字列」に新しいオプションを追加しました。現在のバージョンでは、「ハードコードされたテキスト」よりもはるかに信頼性が高いようです。ここにあるリンク
PAD 2015年

@PADあなたはそれを答えとして書くべきです。ハードコードされたテキストは、xmlファイルのみを返します。ty :)
Maor Hadad 2015年

11

Windowsプラットフォームの場合、私が見つけた最良の方法は次のとおりです。

このショートカットCtrl Alt Shift Iを使用して、、

ハードコードされたテキスト

検索バーで。

ハードコードされた文字列を検索する適切なモジュールを選択すると、すべての文字列のリストが一緒に表示されます。

モジュールを選択するためのオプション


1

すべてのレイアウトファイルのみでハードコードされたすべての文字列を検索したい場合は、-を実行することで非常にすばやく検索できます。

vinayak@vinayak-osx:layout $ grep -n "android:text=\"" * | grep -v "@string"

-注
1.grepウィンドウで使用することはできません
2.まずcd、プロジェクトのにlayoutDIR
3. kcoppockの答えは素晴らしいですが、それは時間がかかりすぎます


grepコマンドは
正常に機能し

1

使用Ctrl+ Shift+ FWindowsがどこでも検索対象の組み合わせ、それはまた、プレビューが表示されます。

現在のファイルを検索するには、WindowsのCtrl+のF組み合わせを使用します。

使用Shift+ Shift(ダブルシフト)Windows用の組み合わせは、プロジェクトのプロジェクトファイルを検索します。

古いバージョンでは利用できない場合があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.