2015-09-28 10 views
6

私はアンドロイドスタジオのベータ機能(データバインディング)を使用しようとしました。アンドロイドスタジオのガイドに従った後、私はアンドロイドスタジオで関連するクラスDataBindingInfoを見つけることができます。しかし、私はプロジェクトを作成した後、データバインディングクラスは生成されません。助けてもらえますか?Androidデータバインディング:シンボルを解決できません

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

activity_main.xml

アプリモジュールのbuild.gradle

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

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

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

あなたのbuild.gradleファイル内のdataBindingを有効にします。あなたのgradleビルドを同期してください。 – USKMobility

+0

はい、そうです。今すぐ動作します –

+0

FYI、rc2は、いくつかのバグ修正と依存性注入のサポートがあります。 –

答えて

10

この同じ問題がありました。私はgradleの設定、掃除、再構築を掘っていた...何も働いた。最後に、私がしなければならなかったすべてがこれを書いている時点でのAndroidメーカー

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

を再起動して、この統合は が軌道に乗るには少しジャンプスタートを必要とします。 タグを追加した後でListItemCrimeBindingを利用できるようにするには、Android Studioを再起動して プロジェクトを再構築する必要があります。

0

ダイアログがポップアップする場合はクリックしてください。次に保存する場合は、同期ボタンを押すか、Android Studioを再起動してください。

9

最初、私は同じとその私のために働い使用

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

+1

これは私のために働いた、これは正解です。 – Oussaki

+0

これを実行した後、Graleファイルを同期するには、File-Sync Project with Gradle Filesに移動する必要があります。 –

関連する問題