在Android Studio中删除OnClick注释的"Method is never used"警告

TMS*_*TMS 42 methods warnings annotations android-studio butterknife

对不起,如果之前已经问过这个问题.我正在使用Butterknife 5.0和最新版本的Android Studio(0.5.7).如何为使用ButterKnife的'OnClick'注释的方法删除"Method is never used"警告.我注意到Eclipse并没有为'OnClick'方法提供此警告.提前致谢

Osv*_*son 89

Android Studio中禁止这些警告的正确方法是在方法上按Alt + Enter,方法'yourFunction()'从不使用警告,并选择

Suppress for methods annotated by 'butterknife.OnClick'
Run Code Online (Sandbox Code Playgroud)

  • 您可以通过编辑.idea/misc.xml文件来撤消它. (6认同)
  • 你如何撤消这个动作? (2认同)

Kon*_*ski 72

只需添加此注释:

@SuppressWarnings("unused")
Run Code Online (Sandbox Code Playgroud)

就像那样:

@SuppressWarnings("unused")
@OnClick(R.id.myButton)
public void clickHandler()
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

我个人的偏好(我认为这是一种很好的做法)是添加评论并附上简短的解释:

@SuppressWarnings("unused") // it's actually used, just injected by Butter Knife
Run Code Online (Sandbox Code Playgroud)

  • 它可以更详细:@SuppressWarnings({"UnusedDeclaration"})@ SuppressWarnings({"UnusedParameters"}) (3认同)

Ada*_*dam 10

奥斯瓦尔德的回答很明显.

但是,如果您想避免为每种类型的刀开注释单独抑制警告,请按照他的说明进行操作,然后打开.idea/misc.xml并查找此部分:

<component name="EntryPointsManager">
  <entry_points version="2.0" />
  <list size="1">
    <item index="0" class="java.lang.String" itemvalue="butterknife.OnClick" />
  </list>
</component>
Run Code Online (Sandbox Code Playgroud)

其中,只需更换butterknife.OnClickbutterknife.*.

从现在开始,所有注入的事件处理程序都将避开警告.


小智 5

为编译器添加另一个依赖项:

摇篮

dependencies {
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0' // new line
    compile 'com.jakewharton:butterknife:8.4.0' // original library
}
Run Code Online (Sandbox Code Playgroud)

推荐在官方网站上

记住Build-> Rebuild Project,这样它将生成用法并消除警告。