#android #android-studio #androidx #butterknife
#Android #android-studio #androidx #butterknife
Вопрос:
Я пытаюсь использовать butter knife в обновленной Android studio 4.1.2, но не получаю generate butterknife injection в опции Generate.
Я уже добавил плагин: Android ButterKnife Zelezny
сборка gradle (проект) /
/ Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
maven { url "https://jitpack.io" }
}
dependencies {
classpath "com.android.tools.build:gradle:4.1.2"
classpath 'com.google.gms:google-services:4.3.5'
classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
maven { url "https://jitpack.io" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
build.gradle(модуль)
apply plugin: 'com.android.application'
apply plugin: 'com.jakewharton.butterknife'
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
applicationId "com.a.b"
minSdkVersion 24
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.13.1'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
// Import the Firebase BoM
implementation platform('com.google.firebase:firebase-bom:26.3.0')
implementation 'com.google.firebase:firebase-crashlytics'
implementation 'com.google.firebase:firebase-analytics'
implementation 'com.google.firebase:firebase-firestore'
implementation 'com.google.firebase:firebase-auth'
//butterknnife
implementation 'com.jakewharton:butterknife:10.2.3'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'
}
после добавления всего этого и перезапуска android studio не появляется опция инъекции butterknife в generate
Комментарии:
1. Обратите внимание, что Butterknife был объявлен устаревшим его автором около года назад
2. @CommonsWare итак, есть ли какой-нибудь способ использовать его в Android studio 4.1.2
3. Я рекомендую вам использовать что-то еще, так же, как автор Butterknife (Джейк Уортон) рекомендует вам использовать что-то еще. Привязка просмотра является текущей ведущей альтернативой.
4. @CommonsWare спасибо за помощь в поиске решения и поиске привязки к просмотру.
Ответ №1:
После попыток и поиска я обнаружил, что Butterknife устарел, поэтому он не будет отображаться
генерировать инъекцию butterknife
из опции генерировать при нажатии R.layout.abc.xml.
Решение 1
но он все еще работает, только вы должны объявить его вручную, как показано ниже
import butterknife.BindView;
import butterknife.ButterKnife;
public class MainActivity extends AppCompatActivity {
@BindView(R.id.iv_upload)
ImageView ivUpload;
@BindView(R.id.textView)
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.abc);
ButterKnife.bind(this);
}
}
Решение 2
как рекомендация @CommonsWare в комментарии, которые используют что-то еще,
Привязка просмотра является текущей ведущей альтернативой.
Ответ №2:
Все объявления зависимостей выглядят нормально. Пожалуйста, сделайте чистую сборку, которая должна решить проблему.
К вашему сведению, вам не нужно применять плагин butterknife и
classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.3'
Вам просто нужно иметь следующие зависимости в app build.gradle
implementation 'com.jakewharton:butterknife:10.2.3'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'
Комментарии:
1. спасибо за быстрый ответ, но я уже пробовал это, но безуспешно
2. как упоминалось в вопросе, он не показывает generate butterknife injection в Generate при нажатии R.layout.abc.xml .
3. Вы должны увидеть что-то вроде этого @BindView