ho ottenuto la seguente struttura:Impossibile accedere ai componenti interni dalla fonte di prova con Android
build.gradle
src
- main
- AndroidManifest.xml
- kotlin
- pkg
- MyClass.kt (internal class MyClass)
- test
- kotlin
- pkg
- MyClassTest.kt
In MyClassTest.kt
ho Riferimento il internal class MyClass
.
Il 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()
}
Ora quando corro ./gradlew test
, ottengo il seguente errore:
Cannot access 'MyClass': it is 'internal' in 'pkg'
Tuttavia, quando passo i plugin da utilizzare java
invece di com.android.application
, e kotlin
anziché kotlin-android
, i test hanno esito positivo.
Come posso fare riferimento alle classi interne dalle mie origini di test quando si utilizzano i plug-in Android?
Questo è un bug nel plugin Gradle per Kotlin, una correzione è quasi pronta, sarà inclusa con il prossimo aggiornamento Beta. –
Ah, fantastico. C'è un problema su YouTrack per questo? – nhaarman
https://youtrack.jetbrains.com/issue/KT-9441 –