2015-11-18 12 views
6

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?

+2

Questo è un bug nel plugin Gradle per Kotlin, una correzione è quasi pronta, sarà inclusa con il prossimo aggiornamento Beta. –

+0

Ah, fantastico. C'è un problema su YouTrack per questo? – nhaarman

+0

https://youtrack.jetbrains.com/issue/KT-9441 –

risposta

1

Questo problema si verificava come bug KT-9441 (come notato da @Andrey) e da allora è stato risolto. Non ci dovrebbero essere problemi attuali con l'ultimo Kotlin e i suoi plugin Gradle.

+0

Questo sembra essere ancora un problema per i progetti Android? Utilizzando la versione 1.0.1. – nhaarman

+0

È stata una correzione sia in Intellij IDEA che nel plugin Kotlin che lavorano insieme, quindi la versione di Android Studio potrebbe essere una versione precedente di Intellij IDEA che presenta il problema. –

+0

Sono anche alle prese con esattamente lo stesso problema in Android (Android Studio), con la versione kotlin '1.0.1-2'. È possibile che ciò dipenda dall'IDE? –

Problemi correlati