2015-09-28 18 views
6

Ich habe versucht, die Beta-Funktionen (Datenbindung) in Android Studio zu verwenden. Nachdem ich den Anleitungen von Android Studio gefolgt bin, kann ich die verwandte Klasse DataBindingInfo in Android Studio finden. Aber die Datenbindungsklasse wird nicht erstellt, nachdem ich das Projekt erstellt habe. Kann jemand helfen?Android Datenbindung: Kann nicht lösen

build.gradle für das APP-Modul

apply plugin: 'com.android.application' 

apply plugin: 'com.android.databinding' 
android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.1" 

    defaultConfig { 
     applicationId "com.example.pigfamily.myapplication" 
     minSdkVersion 15 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:23.0.1' 
} 

build.gradle für das Projekt

// Top-level build file where you can add configuration options common to all sub-projects/modules. 

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     dependencies { 
      classpath "com.android.tools.build:gradle:1.3.0" 
      classpath "com.android.databinding:dataBinder:1.0-rc1" 
     } 
     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

activity_main.xml

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

    <data> 

     <variable 
      name="user" 
      type="com.example.pigfamily.myapplication.User" /> 
    </data> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@{user.name}" /> 

    </LinearLayout> 
</layout> 

MainActivity.java

package com.example.pigfamily.myapplication; 

import android.databinding.DataBindingUtil; 
import android.databinding.ViewDataBinding; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     ActivityMainBinding //cannot resolve the symbol here 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 
} 
+0

habe ich gleich und seine für mich arbeiten. Bitte synchronisieren Sie Ihre Größe Build – USKMobility

+0

Ja, Sie haben Recht. Es funktioniert jetzt –

+0

FYI, RC2 ist mit mehreren Bugfixes und Unterstützung für die Abhängigkeitsinjektion verfügbar. –

Antwort

10

Ich hatte das gleiche Problem. Ich habe grade durch die Einstellungen gegriffen, geputzt, umgebaut ... nichts hat funktioniert. Schließlich alles, was ich tun musste, war Android Studio neu starten

https://www.bignerdranch.com/blog/descent-into-databinding/

Zum Zeitpunkt des Schreibens, muss diese Integration eine wenig Starthilfe in Gang zu bringen. Um ListItemCrimeBinding nach dem Hinzufügen des Tags verfügbar zu machen, müssen Sie Android Studio neu starten und dann das Projekt neu erstellen.

0

Klicken Sie entweder auf Synchronisierung, wenn ein Dialogfeld angezeigt wird, klicken Sie auf die Synchronisierungstaste neben dem Speichern, oder starten Sie Android Studio neu.

9

erste, ermöglichen die Datenbindung in Ihrer build.gradle Datei

android { 
 
... 
 
dataBinding{ 
 
    enabled=true 
 
} 
 
}

+1

Das hat bei mir funktioniert, das ist die richtige Antwort. – Oussaki

+0

Danach müssen Sie gehen zu: Datei - Projekt mit Gradle-Dateien synchronisieren, um die Gradle-Datei zu synchronisieren. –

Verwandte Themen