2015-09-28 21 views
6

Ho provato a utilizzare le funzionalità beta (associazione dati) in Android Studio. Dopo aver seguito le guide di Android Studio, posso trovare la classe correlata DataBindingInfo in Android Studio. Ma la classe di associazione dati non genera dopo aver creato il progetto. Qualcuno può aiutare?Associazione dati Android: Impossibile risolvere il simbolo

build.gradle per il modulo di applicazione

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 per il progetto

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

ho usato lo stesso e il suo lavoro per me. per favore sincronizza il tuo gradle build – USKMobility

+0

Sì, hai ragione. Funziona ora –

+0

FYI, rc2 è disponibile con diverse correzioni di bug e supporto per l'iniezione delle dipendenze. –

risposta

10

Ho avuto lo stesso problema. Stavo scavando attraverso le impostazioni del gradle, la pulizia, la ricostruzione ... niente ha funzionato. Finalmente tutto quello che dovevo fare era riavviare Android Studio

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

momento in cui scriviamo, questa integrazione ha bisogno di un po 'jump-start per ottenere andare. Per rendere ListItemCrimeBinding disponibile dopo aver aggiunto il tag , è necessario riavviare Android Studio, quindi ricostruire il progetto .

0

O fare clic su sincronizzazione se viene visualizzata una finestra di dialogo, premere il pulsante di sincronizzazione accanto a Salva o riavviare Android Studio.

9

prima, abilitare l'associazione dati nel file build.gradle

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

+1

Questo ha funzionato per me, questa è la risposta corretta. – Oussaki

+0

Dopo aver fatto ciò, devi andare su: File - Sincronizza Progetto con File Gradle per sincronizzare il file gradle. –

Problemi correlati