android 包 *.databinding 不存在

标签 android data-binding android-databinding

我阅读了有关此问题的更多链接,但我不知道我的项目到底有什么问题。我在build.gradle上将dataBinding设置为true,下面的代码是我的应用build.gradle文件内容

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.text.myapp"
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    dataBinding {
        enabled = true
    }
}

repositories {
    jcenter()
    maven { url "https://jitpack.io" }
    maven { url "https://clojars.org/repo/" }
}

def support_library = "25.2.0"

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile "com.android.support:appcompat-v7:${support_library}"
    compile "com.android.support:support-v13:${support_library}"
    compile "com.android.support:cardview-v7:${support_library}"
    compile "com.android.support:recyclerview-v7:${support_library}"
}

我的 Activity :

public class ActivityRegister extends AppCompatActivity {

    private ActivityRegisterBinding binding;

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = DataBindingUtil.setContentView(this, R.layout.activity_register);
    }
}

然后是 Activity 布局

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

    <data>
        <variable
            name="presenter"
            type="ir.pishguy.cafealachiqpro.Ui.Register.ActivityMain.Model.ActivityRegisterViewModel"/>
    </data>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="-5dp"
        android:orientation="vertical">

        <TextView
            android:id="@+id/default_port"
            android:layout_width="match_parent"
            android:visibility="gone"
            android:layout_height="@dimen/default_textview_height"/>
    </LinearLayout>
</layout>

Logcat 错误:

/Users/mahdi/Desktop/Home/Projects/Android/CafeAlachiqPro/app/src/main/java/com/text/myapp/Ui/Register/ActivityMain/Presenter/ActivityRegister.java
Error:(11, 45) error: package com.text.myapp.databinding does not exist
Error:(19, 13) error: cannot find symbol class ActivityRegisterBinding
Warning:The following options were not recognized by any processor: 
'[android.databinding.artifactType, android.databinding.printEncodedErrors, android.databinding.minApi, android.databinding.isTestVariant, android.databinding.enableDebugLogs, android.databinding.sdkDir, android.databinding.bindingBuildFolder, android.databinding.enableForTests, android.databinding.modulePackage, android.databinding.generationalFileOutDir, android.databinding.xmlOutDir]'
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

我的 View 模型:

public class ActivityRegisterViewModel extends BaseObservable {
    private String readContactPermission;
    private String getMessages;

    public ActivityRegisterViewModel() {
    }

    @Bindable
    public String getReadContactPermission() {
        return readContactPermission;
    }

    public void setReadContactPermission(String readContactPermission) {
        this.readContactPermission = readContactPermission;
        notifyChange();
    }

    public String getGetMessages() {
        return getMessages;
    }

    public void setGetMessages(String getMessages) {
        this.getMessages = getMessages;
    }
}

最佳答案

移除

应用插件:'com.neenbedankt.android-apt'

apt "com.github.Raizlabs.DBFlow:dbflow-processor:${dbflow_version}"

来自渐变。这有助于我摆脱这个错误。

虽然我可以运行你的项目,因为 ir.pishguy.cafealachiqpro.Ui.Register.Robot.Model.RobotViewModel 无法从 robot_user_action.xml 解析

<data class="UserMessagesDataBinding">

        <variable
            name="viewModel"
            type="ir.pishguy.cafealachiqpro.Ui.Register.Robot.Model.RobotViewModel">
        </variable>
    </data>

关于android 包 *.databinding 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43226506/

相关文章:

java - 如何让一个圆圈在动画中只显示一次

Android 在 RecyclerView 上使用多个不同的行来实现数据绑定(bind)功能

android - 如何正确地将数字绑定(bind)到 Android editText

java - httpClient.execute(httpget, responseHandler) 中的 ClientProtocolException

android.graphics 从一个 View 指向另一个 View 画一条线

java - 注销动态创建的接收器

mvvm - 如何通过 ViewModel 实现的 onclick Binding Adapter 获取 Position 和 View 信息?

.net - 如何在没有代码的情况下将 XML 绑定(bind)到 TreeView(MVVM,来自 XAML 的 dataContext)

data-binding - Kotlin 2路绑定(bind)自定义 View

android - 带数据绑定(bind)的 ConstraintLayout