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

nha*_*man 6 android kotlin

我有以下结构:

build.gradle
src
 - main
   - AndroidManifest.xml
   - kotlin 
     - pkg
       - MyClass.kt (internal class MyClass)
 - test
   - kotlin
     - pkg
       - MyClassTest.kt   
Run Code Online (Sandbox Code Playgroud)

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()
}
Run Code Online (Sandbox Code Playgroud)

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

无法访问'MyClass':'pkg'中的'内部'

然而,当我切换插件使用java,而不是com.android.applicationkotlin代替kotlin-android,测试做成功.

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

Jay*_*ard 1

此问题作为 bug KT-9441存在(如@Andrey 所述),现已修复。最新的 Kotlin 及其 Gradle 插件目前应该没有问题。