web-dev-qa-db-ja.com

AndroidStudioは、「タイプstringの予期されるリソース」を無効にします

私は自分のプロジェクトの1つに対して署名済みapkを生成しようとしました(以前にこれをすでに行っていました)が、(おそらくAndroid Studio)を更新して以来、私は

エラー:エラー:タイプ文字列[ResourceType]のリソースが必要です

これは、Butterknifeの@BindStringを使用しているためです。

target.settings = res.getString(2131230792);

スタジオでこれをエラーとして検出しないようにするにはどうすればよいですか?設定で検索しようとしましたが、成功しませんでした。

27
Yaroslav

これは報告されています GitHubプロジェクトで 。 ButterKnifeの次のバージョンで修正される予定です。

回避策は there と示されており、lint.xmlクラスのエラーを無視するために、appモジュールに以下の内容の*$$ViewBinderファイルを追加することです。 ButterKnifeが生成する):

<issue id="ResourceType">
    <!-- Remove this when this is fixed: https://github.com/JakeWharton/butterknife/issues/338 -->
    <ignore path="**/*$$ViewBinder.Java" />
</issue>

これに対する答えは、build.gradleでlintルールを無効にすることです。

Android {
  lintOptions {
    disable "ResourceType"
  }
}

編集:これは、特にEclipseからAndroid Studio。

66
Yaroslav

おそらくより良い解決策は、メソッド定義の直前に@SuppressLint("ResourceType")を使用してエラー/警告を一時的に無効にすることです。

6
user7287497

同様の問題があります。 getStringメソッドを使用します。 R.string.MYSTRINGである必要があるときにgetString(R.id.MYSTRING)で文字列値を取得していたため、strings.xmlではなくids.xmlから文字列値を取得しようとしていました。

0
lxknvlk

これは同じIDの一部のビュー用であり、それらのいずれかのプロパティを変更しようとします。 apk Androidを作成しようとすると、resours idについていくつかの信頼を見つける

それを解決するために

より良い方法でコードを見つけ、別の方法で目的に合わせて解決してみてください

がんばろう

0