Ошибка первого использования ButterKnife

после того, как я страдал от findViewById, я решил использовать ButterKnife, но приятный баг сказал мне, что вы никогда не будете использовать ButterKnife, вот ошибка

@InjectView-аннотированный класс неправильно в пакете платформы Android.

Зачем? где моя ошибка? gradle dependency неправильно?

Я видел этот пост, но он мне не помог

файл градиента (модуль)

apply plugin: 'com.neenbedankt.android-apt'
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
}

dependencies {
    compile 'com.jakewharton:butterknife:8.0.1'
    apt 'com.jakewharton:butterknife-compiler:8.0.1'
}

ошибка в этой строке

@BindView(R.id.button_birth_date)
private Button buttonBirthDate;

и другие переменные-члены (представления), которые используют @BindView


person Basheer AL-MOMANI    schedule 28.04.2016    source источник
comment
каково имя вашего пакета приложений?   -  person USKMobility    schedule 28.04.2016
comment
добавьте свой build.gradle тоже   -  person USKMobility    schedule 28.04.2016
comment
package="android.alcode.com.material" из manifest file   -  person Basheer AL-MOMANI    schedule 28.04.2016
comment
Как насчет того, чтобы показать нам код, который дает эту ошибку.   -  person Tim    schedule 28.04.2016


Ответы (3)


Джейк Уортон, Исключение говорит само за себя:

@InjectView-annotated class incorrectly in Android framework package. 

Ваш класс находится в пакете платформы Android, android.. Приложения не должны использовать пакеты android. или java.* для своего кода. ButterKnife охотно отклонит эти пакеты.

Измените имя вашего пакета. android.alcode.com.material в something.alcode.com.material

person USKMobility    schedule 28.04.2016

имя вашего пакета не должно содержать android слова

поэтому убедитесь, что имя your application package не содержит android word.

person Basheer AL-MOMANI    schedule 16.03.2017

Если вы используете последний Butterknife, вы используете Butterknife.bind(this), а не Butterknife.inject(this), для просмотра используйте @Bind(R.id.idview), а не @InjectView(R.id.idview). См. документацию.

Изменить: измените имя своего пакета, вы не можете использовать android.* или java.*, ответ Джейка Уортона

person Francesco Bonnì    schedule 28.04.2016