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

Cannot access internal components from test source with Android

我得到了以下结构:

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 时,我得到以下错误:

Cannot access 'MyClass': it is 'internal' in 'pkg'

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

使用 Android 插件时如何从我的测试源引用内部 类?

此问题作为错误 KT-9441 存在(正如@Andrey 所指出的),并且已得到修复。当前最新的 Kotlin 及其 Gradle 插件应该没有问题。