Почему Android Studio 3.6 не показывает правильное местоположение ошибки, когда я использую привязку данных? - PullRequest
0 голосов
/ 08 ноября 2019

Android Studio 3.6

В моем xml я использую привязку данных:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <data>

        <variable
            name="testVariable"
            type="java.lang.String" />

        <variable
            name="handler"
            type="com.myproject.TestActivityJava" />

    </data>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/addTraderMainContainer"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </androidx.constraintlayout.widget.ConstraintLayout>

</layout>

, но активность TestActivityJava не существует в моем проекте. Таким образом, в результате, когда я пытаюсь запустить приложение (в Android Studio 3.6), я получаю сообщение об ошибке:

cannot find symbol
  protected TestActivityJava mHandler;
            ^
  symbol:   class TestActivityJava
  location: class TestActivityJavaBinding



e: myproject\app\build\generated\data_binding_base_class_source_out\debug\out\com\myproject\databinding\TestActivityJavaBinding.java:27: error: cannot find symbol
  protected TestActivityJava mHandler;
            ^
  symbol:   class TestActivityJava
  location: class TestActivityJavaBinding


error: cannot generate view binders android.databinding.tool.util.LoggedErrorException: failure, see logs for details.
  Cannot resolve type 'handler'
    at android.databinding.tool.util.L.printMessage(L.java:134)
    at android.databinding.tool.util.L.e(L.java:107)
    at android.databinding.tool.expr.Expr.getResolvedType(Expr.java:370)
    at android.databinding.tool.expr.ExprModel.lambda$resolveTypes$1(ExprModel.java:618)
    at java.util.ArrayList.forEach(ArrayList.java:1257)

Я иду на TestActivityJavaBinding.java:27 и нахожу это:

public abstract class TestActivityJavaBinding extends ViewDataBinding {
  @NonNull
  public final ConstraintLayout addTraderMainContainer;

  @Bindable
  protected String mTestVariable;

  @Bindable
protected TestActivityJava mHandler;

Эта информация непомогите любым способом !!! Как видите, Android Studio не помогает мне найти проблему. Почему Android Studio не указывает, что проблема в файле xml?

PS После удаления моего xml проблема исчезла. И я успешно запускаю мое приложение.

...