Kotlin中Holdr的未解决参考

时间:2015-03-13 06:30:27

标签: android gradle android-gradle build.gradle kotlin

我正在尝试使用名为Holdr(https://github.com/evant/holdr)的库来根据我的布局文件生成类,以便在我的活动中轻松引用这些布局中的视图。

我可以验证在构建时生成的类

./gradlew assembleDebug

布局activity_main.xml的类在

中生成Holdr_ActivityMain.java
app/build/generated/source/holdr/

Kotlin在任务期间给了我两个错误

:app:compileDebugKotlin

错误

e: (8, 44): Unresolved reference: holdr
e: (12, 24): Unresolved reference: Holdr_ActivityMain

这是我的班级

import com.myapp.holdr.Holdr_ActivityMain

public class MainActivity : Activity() {

    private var holdr: Holdr_ActivityMain? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

}

这是我的build.gradle

apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.holdr'
apply plugin: 'kotlin-android'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.0"

    defaultConfig {
        applicationId "com.myapp"
        minSdkVersion 22
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        main.java.srcDirs += 'src/main/java'
        main.java.srcDirs += 'src/main/kotlin'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}

buildscript {

    ext.kotlin_version = '0.10.770'

    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'me.tatarka.holdr:gradle-plugin:1.4.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

repositories {
    mavenCentral()
}

任何帮助将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:1)

你使用什么Kotlin Gradle插件版本?

目前,您可以明确指定Holdr源路径作为解决方法:

sourceSets {
    ...
    debug.java.srcDirs += 'build/generated/source/holdr/debug'
    release.java.srcDirs += 'build/generated/source/holdr/release'
}