【问题标题】:DataBinding Wrong Compile ClassDataBinding 错误的编译类
【发布时间】:2018-09-30 16:57:06
【问题描述】:

我被这个问题困住了。一切都很好,但 DataBinding 代码生成器在编写代码时出错。我写错东西了吗?如果你们遇到和我一样的问题,并且成功解决了,请帮助我。这是我的问题:

我没有名为 View 的类,它只是一个包名。看看这个:

也许我的 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

我该怎么办?

【问题讨论】:

  • 您需要共享完整的 gradle 日志。您可以在重新构建之前设置像 --stacktrace 或 --debug 这样的命令
  • 我认为这与您以大写字母开头的包名有关。您是否尝试将您的包从 View 重命名为 view
  • 如果@DanailAlexiev 评论不起作用,也请尝试“使缓存无效并重新启动”选项

标签: android data-binding kotlin android-databinding


【解决方案1】:

重命名(shi​​ft + F6)查看包。您可以将其重命名为 views / ui 或其他任何名称。

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

始终关注java naming conventions,我们鼓励他们关注。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    相关资源
    最近更新 更多