Неверный класс компиляции DataBinding - PullRequest
0 голосов
/ 30 сентября 2018

Я застрял с этой проблемой.Все хорошо, но генератор кода DataBinding неправильно пишет код.Я что-то не так пишу?Если вы, ребята, когда-нибудь почувствуете ту же проблему, что и я, и успешно решите ее, пожалуйста, помогите мне.Это моя проблема: ActivityLoginBinding

У меня нет класса с именем View, это просто имя пакета.Посмотрите на это:

Folder Structure

Возможно, у меня возникли некоторые проблемы с моим 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"
    xmlns:tools="http://schemas.android.com/tools">

    <data>

        <variable
            name="activity"
            type="galihlprakoso.com.surat_kaleng_app.View.LoginActivity"/>

    </data>
    <android.support.constraint.ConstraintLayout
        android:background="@drawable/main_bg"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="galihlprakoso.com.surat_kaleng_app.View.LoginActivity">


        <ImageView
            android:scaleType="centerCrop"
            android:src="@drawable/main_background"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

        <TextView
            android:text="Surat Kaleng"
            android:textSize="40sp"
            android:layout_marginBottom="20dp"
            app:layout_constraintBottom_toTopOf="@id/act_login_main_logo"
            android:textColor="@android:color/white"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            android:textAlignment="center"
            android:fontFamily="@font/ptmono"
            android:layout_width="0dp"
            android:layout_height="wrap_content" />

        <ImageView
            android:id="@+id/act_login_main_logo"
            android:src="@drawable/main_logo"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            android:layout_width="200dp"
            android:layout_height="200dp" />

        <Button
            android:onClick="@{()->activity.doLogin()}"
            android:text="@string/login_dengan_google"
            android:fontFamily="@font/ptmono"
            android:textColor="@android:color/white"
            android:background="@drawable/main_btn"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            android:layout_margin="20dp"
            android:layout_width="0dp"
            android:layout_height="wrap_content" />

        <TextView
            android:text="Menghubungkan orang terdekat secara misterius."
            app:layout_constraintTop_toBottomOf="@id/act_login_main_logo"
            android:textColor="@android:color/white"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            android:textAlignment="center"
            android:fontFamily="@font/ptmono"
            android:layout_width="0dp"
            android:layout_height="wrap_content" />

        <ImageView
            android:src="@drawable/login_top_menu"
            android:layout_margin="20dp"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            android:layout_width="50dp"
            android:layout_height="50dp" />

    </android.support.constraint.ConstraintLayout>
</layout>

Это ошибка:

/Users/galihlarasprakoso/Projects/Android/suratkalengapp/app/build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out/galihlprakoso/com/surat_kaleng_app/databinding/ActivityLoginBinding.java:12: error: cannot find symbol
import galihlprakoso.com.surat_kaleng_app.View;
                                         ^
  symbol:   class View
  location: package galihlprakoso.com.surat_kaleng_app
/Users/galihlarasprakoso/Projects/Android/suratkalengapp/app/build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out/galihlprakoso/com/surat_kaleng_app/databinding/ActivityLoginBinding.java:19: error: package View does not exist
  protected View.LoginActivity mActivity;
                ^
/Users/galihlarasprakoso/Projects/Android/suratkalengapp/app/build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out/galihlprakoso/com/surat_kaleng_app/databinding/ActivityLoginBinding.java:27: error: package View does not exist
  public abstract void setActivity(@Nullable View.LoginActivity activity);
                                                 ^
/Users/galihlarasprakoso/Projects/Android/suratkalengapp/app/build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out/galihlprakoso/com/surat_kaleng_app/databinding/ActivityLoginBinding.java:30: error: package View does not exist
  public View.LoginActivity getActivity() {
             ^
4 errors

Что мне делать?

1 Ответ

0 голосов
/ 03 октября 2018

Переименовать (shift + F6) Посмотреть пакет.Вы можете переименовать его в views / ui или в любое другое.

<variable
   name="activity"
   type="galihlprakoso.com.surat_kaleng_app.views.LoginActivity"/>

Всегда следуйте соглашениям по именованию java , которые рекомендуется соблюдать.

...