Android ButterKnife @OnClick () не работает со всеми зависимостями.

 @BindView(R.id.text_view)
TextView text_view;

@BindView(R.id.app_bar)
Toolbar toolbar;

 private FirebaseUser firebaseUser;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ButterKnife.bind(this);
    setSupportActionBar(toolbar);



}

@OnClick(R.id.test_btn)
void btnTest(){
    Toast.makeText(this, "all ok", Toast.LENGTH_SHORT).show();
}

E / AndroidRuntime: FATAL EXCEPTION: main Process: com.example.calories, PID: 10164 java.lang.BootstrapMethodError: Исключение из метода начальной загрузки сайта №1 в butterknife.internal.DebouncingOnClickListener. (DebouncingOnClickListener.java .: example.calories.MainActivity_ViewBinding. (MainActivity_ViewBinding.java:34) в java.lang.reflect.Constructor.newInstance0 (собственный метод) в java.lang.reflect.Constructor.newInstance (Constructor.java:343) в butterknife.ButterKnife.bind (ButterKnife.java:170) в butterknife.ButterKnife.bind (ButterKnife.java:99) в com.example.calories.MainActivity.onCreate (MainActivity.java:35) в android.app.Activity.performCreate (Activity.java: 7136) в android.app.Activity.performCreate (Activity.java:7127) в android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1271) в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2893) в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3048) в android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:78) в android.app.servertransaction.TransactionExecutor.exe ( TransactionExecutor.java:108) в android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:68) в android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1808) в android.os.Handler.dispatchMessage (Handler .java: 106) в android.os.Looper.loop (Looper.java:193) в android.app.ActivityThread.main (ActivityThread.java:6669) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:493)


person Kostya Lotysh    schedule 19.09.2019    source источник
comment
Не могли бы вы также разместить здесь свой XML-файл макета?   -  person PGMacDesign    schedule 19.09.2019


Ответы (1)


Butter Knife требует, чтобы вы включили Java 8 в своих сборках для работы с версией 9.0.0 и новее. Вы можете узнать больше о том, как включить это, на https://developer.android.com/studio/write/java8-support.

Вам нужно добавить что-то вроде

  android { 
compileOptions {
 targetCompatibility = "8" sourceCompatibility = "8"
 } 
}

в ваше приложение build.gradle.

person Nidheesh MT    schedule 19.09.2019
comment
Кроме того, последняя версия, похоже, использует компоненты Androidx. - person TheRealChx101; 26.10.2019