tux-world
tux-world

Reputation: 2720

android package *.databinding does not exist

I read more links about this problem, but i dont know whats exactly problem of my project. i set dataBinding as true on build.gradle, below code is my application build.gradle file content

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}"
}

My 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);
    }
}

and then, activity layout

<?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>

Error on 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.

My viewModel:

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;
    }
}

Upvotes: 2

Views: 2805

Answers (2)

S Haque
S Haque

Reputation: 7271

Remove

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

and

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

from gradle. This helps me to get rid of this error.

Although I could run your project cause ir.pishguy.cafealachiqpro.Ui.Register.Robot.Model.RobotViewModel can not be resolved from robot_user_action.xml

<data class="UserMessagesDataBinding">

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

Upvotes: 1

Suraj Makhija
Suraj Makhija

Reputation: 1396

Please mention the variable tag which defines your viewmodel as follows :

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

        <data>

           <variable
              name="<variablename>"
              type="<packagename.YourViewModel>" />
        </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>

Upvotes: 0

Related Questions