Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Enlace de datos de Android: No se puede resolver el símbolo

He intentado utilizar las características beta (enlace de datos) en el estudio de android. Después de seguir las guías de android studio, puedo encontrar la clase relacionada DataBindingInfo en android studio. Pero la clase de enlace de datos no se genera después de crear el proyecto. ¿Puede alguien ayudar?

Build.gradle para el módulo de aplicación

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 para el proyecto

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

    3 Solutions collect form web for “Enlace de datos de Android: No se puede resolver el símbolo”

    Yo tuve el mísmo problema. Estaba excavando a través de la configuración gradle, la limpieza, la reconstrucción … nada funcionó. Finalmente todo lo que tenía que hacer era reiniciar Android Studio

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

    A partir de este escrito, esta integración necesita un poco de arranque para ponerse en marcha. Para que ListItemCrimeBinding esté disponible después de agregar la etiqueta, debe reiniciar Android Studio y reconstruir el proyecto.

    Primero, habilite dataBinding en su archivo build.gradle

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

    Haga clic en sincronizar si aparece un diálogo, pulse el botón de sincronización al lado de guardar o reinicie Android Studio.

      FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.