无法使用Android从测试源访问内部组件

时间:2015-11-18 15:10:33

标签: android kotlin

我有以下结构:

build.gradle
src
 - main
   - AndroidManifest.xml
   - kotlin 
     - pkg
       - MyClass.kt (internal class MyClass)
 - test
   - kotlin
     - pkg
       - MyClassTest.kt   

MyClassTest.kt中,我引用了internal class MyClass

build.gradle

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
//apply plugin: 'java'
//apply plugin: 'kotlin'

android {
  compileSdkVersion 23
  buildToolsVersion "23.0.2"

  sourceSets {
    main.java.srcDirs += 'src/main/kotlin'
    test.java.srcDirs += 'src/test/kotlin'
  }
}

dependencies {
  testCompile 'junit:junit:4.12'
  compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}

buildscript {
  ext.kotlin_version = '1.0.0-beta-2423'
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
  }
}

repositories {
  mavenCentral()
}

现在,当我运行./gradlew test时,出现以下错误:

  

无法访问' MyClass':它是'内部'在' pkg'

但是,当我将插件切换为使用java而不是com.android.applicationkotlin而不是kotlin-android时,测试确实成功。

在使用Android插件时,如何从测试源中引用内部类?

1 个答案:

答案 0 :(得分:1)

此问题以错误KT-9441(由@Andrey指出)存在,并且已经修复。最新的Kotlin及其Gradle插件应该没有当前的问题。