无法使用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
,我得到以下错误:
无法访问“MyClass”:在“pkg”中是“内部”
然而,当我切换插件使用java
而不是com.android.application
和kotlin
而不是kotlin-android
,测试成功。
在使用Android插件时,如何从测试资源中引用内部类?
- 变量被声明为var,但编译器正在说val
- onclick在android studio中不使用kotlin响应
- permissionsdispatcher和多个@ NeedsPermission与kotlin
- 如何将ByteArray转换为Kotlin中指定字符集的字符串
- 与Android的Kotlin:基类和Kotlin Android扩展
这个问题存在bug KT-9441 (正如@Andrey所指出的那样),现在已经被修复了。 最新的Kotlin及其Gradle插件应该没有问题。