我今天早些时候听说了一些关于数据绑定的事情。因为我想尝试一下并了解它,所以我创建了一个测试项目。
Data Binding是 API 7+ 上可用的支持存储库。使用dataBinder,我们能够在绑定应用程序逻辑和布局时告别findViewById
(开发人员经常抱怨这一点)。
以下是有关我的项目的信息: Android Studio:
- 当前版本:Android Studio 1.3
- 内部版本号:AI-141.2071668
- Android SDK 工具:24.3.3
- Android 平台版本:MNC 修订版 2
项目build.gradle
:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0-beta4'
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 'android-MNC'
buildToolsVersion "23.0.0 rc3"
defaultConfig {
applicationId "me.danielpan.databindingsample"
minSdkVersion 9
targetSdkVersion 'MNC'
versionCode 1
versionName '1.0.0'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
productFlavors {
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:22.2.0'
}
当我在 Genymotion Emulator(Android 5.1.0 中的 Nexus 5)上运行这个项目时,发生了错误:
Installing me.danielpan.databindingsample
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/me.danielpan.databindingsample"
pkg: /data/local/tmp/me.danielpan.databindingsample
Failure [INSTALL_FAILED_OLDER_SDK]
DEVICE SHELL COMMAND: pm uninstall me.danielpan.databindingsample
DELETE_FAILED_INTERNAL_ERROR
所以,我有一些问题:
1、DELETE_FAILED_INTERNAL_ERROR
发生了很多次。当我设置 compileSdkVersion 'android-MNC' buildToolsVersion "23.0.0 rc3" 时似乎发生了这个错误那么,这是这个版本的Android Build Tools的问题吗?
2,我遵循了Data Binding Guide,但我认为它已经过时了。因为Gradle Plugin一直是1.3.0-beta4 ,所以 dataBinder 的版本应该在发布后就已经进化了。那么,最新版本的数据绑定插件是什么?
任何提示将不胜感激。提前致谢。
PS:
当我设置 Gradle Plugin 的版本时1.2.3
,buildToolsVersion
“22.0.1” compileSdkVersion
22 和targetSdkVersion
22DELETE_FAILED_INTERNAL_ERROR
不再发生,有人能告诉我为什么吗?