これは、今日では無関係な古い質問です。 Android開発者の指示。プロジェクトへのデータバインディングの適用は、4年前よりもはるかに簡単になりました。
Android https://developer.Android.com/tools/data-binding/guide.html からのデータバインディングガイド。私はAndroid Studio 1.3(カナリア版)を実行しています。
ガイドラインに従って、このエラーが表示されます:
Gradle sync failed: could not find com.Android.databinding:library:1.0-rc0
他の誰かが同じ問題を抱えていますか?ご協力いただきありがとうございます。
アプリbuild.gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.Android.tools.build:gradle:1.3.0-beta1'
classpath "com.Android.databinding:dataBinder:1.0-rc0"
}
}
allprojects {
repositories {
jcenter()
}
}
モジュールbuild.graddle
apply plugin: 'com.Android.application'
apply plugin: 'com.Android.databinding'
apply plugin: 'Android-apt'
def AAVersion = '3.3'
def MyProject = 'com.commonsware.Android.frw.filesdemo'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.neenbedankt.gradle.plugins:Android-apt:1.4'
}
}
repositories {
mavenCentral()
}
apt {
arguments {
androidManifestFile variant.outputs[0].processResources.manifestFile
resourcePackageName "$MyProject"
}
}
Android {
compileSdkVersion 22
buildToolsVersion "22"
defaultConfig {
applicationId "$MyProject"
minSdkVersion 17
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
packagingOptions{
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'META-INF/services/com.fasterxml.jackson.core.JsonFactory'
}
dexOptions {
preDexLibraries = false
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:22.0.0'
compile "com.squareup:otto:1.3.6"
compile "commons-io:commons-io:+"
compile 'com.fasterxml.jackson.jr:jackson-jr-all:2.5.0'
compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
apt "org.androidannotations:androidannotations:$AAVersion"
compile "org.androidannotations:androidannotations-api:$AAVersion"
}
この問題が発生したので、最上位のbuild.gradleのallprojects.repositoriesに「jcenter」を追加して解決しました(mavenCentralを使用していました)。
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.Android.tools.build:gradle:1.3.0'
classpath 'com.Android.databinding:dataBinder:1.0-rc1'
}
}
allprojects {
repositories {
mavenCentral()
jcenter() // <=== *** Adding this fixed it ***
}
}
Build.gradleファイルを同期するとエラーが発生しました。
エラー:解決に失敗しました:com.Android.databinding:library:1.0-rc0
エラー:解決に失敗しました:com.Android.databinding:adapters:1.0-rc0
そして、最終的に解決策を見つけました。
dependencies {
// instead of the below pathes...
//classpath "com.Android.tools.build:gradle:1.3.0-beta2"
//classpath "com.Android.databinding:dataBinder:1.0-rc0"
// I used the following classpathes.... It works!
classpath "com.Android.tools.build:gradle:1.3.+"
classpath "com.Android.databinding:dataBinder:1.+"
}
エラーGradle couldn't find com.Android.databinding:dataBinder:1.0-rc0
を見て、代わりにこれを試してください。
classpath "com.Android.databinding:dataBinder:1.0-rc1"
DataBinding
を使用するには、これらのすべての手順に従ってください。
Android Studio
をAndroid Studio 1.3
バージョンに更新します。application
を設定してdata binding
を使用するには、data binding
を[Android]のすぐ下にあるtop-level
build.gradle
ファイルのクラスパスに追加します。
dependencies {
classpath "com.Android.tools.build:gradle:1.3"
classpath "com.Android.databinding:dataBinder:1.0-rc1"
}
次に、jcenterが最上位のbuild.gradleファイルのプロジェクトのリポジトリリストにあることを確認します。
allprojects {
repositories {
jcenter()
}
}
データバインディングを使用する各モジュールで、Android plugin。の直後にプラグインを適用します。
apply plugin: 'com.Android.application'
apply plugin: 'com.Android.databinding'
Clean
およびbuild
アプリ。
完全なコード
top-level
build.gradle
ファイル、
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.Android.tools.build:gradle:1.3'
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()
}
}
module-level
build.gradle
ファイル、
apply plugin: 'com.Android.application'
apply plugin: 'com.Android.databinding'
Android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.example.packagename"
minSdkVersion 15
targetSdkVersion 22
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:22.2.1'
}
詳細については、 データバインディングガイド 。
完全なデモの場合 Androidのデータバインディング
Android Studio 1.以上であることを確認してください
プロジェクトbuild.gradleは次のようになります。
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.Android.tools.build:gradle:1.3.0-beta1'
classpath "com.Android.databinding:dataBinder:1.0-rc0"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
モジュールbuild.gradleは次のようになります。
apply plugin: 'com.Android.application'
apply plugin: 'com.Android.databinding'
Android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.my.appId"
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
M Previewをターゲットにしているときに問題が発生したため、何も機能しませんでした。ビルドツールを22.0.1に、targetSdkVersionを22に変更すると、すべてが機能しました。
同じ問題があり、Android SDKツールを24.3.3に更新することで解決しました。
ドキュメントが言ったように
データバインディングを使用するには、Android Gradle 1.5.0-alpha1以降のプラグインが必要です。
Build.gradleプロジェクトに次の行を追加しました。
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "com.Android.tools.build:gradle:1.5.0-beta2"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
次に追加します:
dataBinding {
enabled = true
}
このようなあなたのbuild.graddleモジュールアプリに:
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "gujarat.databinding"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
dataBinding {
enabled = true
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.Android.support:appcompat-v7:23.1.1'
compile 'com.Android.support:support-v4:23.1.1'
}
同じ問題がありましたが、Android-aptのプラグインを削除することで解決しました。そこに何が矛盾しているかはわかりませんが、何かがあります。
[〜#〜] sdk [〜#〜]を更新する必要があり、この問題は解決します。
クラスパスを「com.Android.tools.build:gradle:1.3.0-beta2」に変更し、buildToolsVersionを設定してみてください。「23 rc2」。
それを行う前に、SDKマネージャーを介してSDKパッケージを更新することを忘れないでください。
ここでは、Android Preview SDK: Setup SDKのセットアップ に関する詳細情報を見つけることができます。
すぐにdatabinding:dataBinder
依存関係を追加する必要はありません。アプリレベルのbuild.gradle
でdataBindingを有効にするだけで、Androidタグで。
Android
{
...
dataBinding {
enabled = true
}
...
}