应用程序模块

时间:2017-12-14 07:11:11

标签: android data-binding kotlin

我有一个使用数据绑定的android库(kotlin)。图书馆本身编写得很好。当我将库作为模块添加到另一个应用程序时,我收到大量的数据绑定错误,这似乎是我在库中使用的所有数据绑定。

enter image description here

在研究问题后,很多人建议添加

dataBinding {
   enabled = true
}

同时加入应用和库build.gradle文件。

即使这样做,我仍然会收到同样的错误。我试过多次清理项目而没有任何变化。如果有人能够解释为什么库将作为一个单独的项目自己构建,但是当作为一个模块包含在另一个项目中时不会构建,我将不胜感激。

app - build.gradle

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'realm-android'
apply plugin: 'kotlin-kapt'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "cz.abc.abc"
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
    }


    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            //signingConfig signingConfigs.release
        }
    }

    dataBinding {
        enabled = true
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"

    kapt "com.android.databinding:compiler:3.0.1"
    implementation 'android.arch.lifecycle:extensions:1.0.0'

    implementation project(':my-library')
}

library / module - build.gradle

apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'realm-android'
apply plugin: 'kotlin-kapt'

def AAVersion = '4.4.0-SNAPSHOT'
def supportVersion = "26.1.0"
def anko_version = "0.10.1"

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.2"
    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    packagingOptions {
        pickFirst 'META-INF/LICENSE.txt'
    }

    dataBinding {
        enabled = true
    }
}

kapt {
    correctErrorTypes = true
    generateStubs = true
}

dependencies {
    ...
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
    kapt "com.android.databinding:compiler:+"
    ...
}

Gradle Build Tools: 3.0.1

Kotlin: 1.2.0

修改

我改变了导入的方式。我没有导入库,也没有在项目中复制库,而是在setting.gradle中添加了一个库的路径。

settings.gradle

include ':app'
include ':my-library'

project (':my-library').projectDir = new File('../library')

错误现在不同了:

enter image description here

0 个答案:

没有答案