English | [简体中文](README-zh.md)
## Purpose
Able to detect exceptions caused by cross-module use of ButterKnife during compilation
## Problem
When using ButterKnife across modules, if the following conditions are satisfied
1. Class A is injected by ButterKnife
2. Class B that is parent of Class A is also injected by ButterKnife
3. A and B are in different modules
Under the condition that instance of A uses ButterKnife injection, the injection of the parent class B will be ignored, which may cause a null pointer exception or a potential business logic exception
This plugin hopes to check this situation during compilation. If an abnormal case is detected, the compilation process will be interrupted, and an error message will be output to propel the developer to fix it.
## TODO
Automatic repair for wrong cases with bytecode technology
## Quick Start
* add build classpath
>classpath "com.bytedance.android.byteX:butterknife-check-plugin:${plugin_version}"
* apply and configure the plugin in your build.gradle(application)
```groovy
apply plugin: 'bytex.butterknife-check'
butterknife-check-plugin {
enable true
enableInDebug true
logLevel "DEBUG"
}
```