J'essaie de me familiariser avec Kotlin pour l'utiliser dans mes applications Android. Je voudrais donc commencer par essayer quelques exemples simples de kotlin, juste pour me familiariser avec la syntaxe de kotlin.
J'ai créé une classe nommée Main.kt
dans mon projet Android avec uniquement la méthode principale.
fun main(args: Array<String>) {
println("Hello World"); }
Le studio Android me montre une icône kotlin à gauche de la méthode principale et lorsque je clique sur cette icône, elle me montre ci-dessous trois options:
1) Exécuter Mainkt
2) Debug Mainkt
3) Exécuter Mainkt avec une couverture
J'ai choisi le premier mais ça me jette
Exception in thread "main" Java.lang.ClassNotFoundException: com.vikalp.kotlin.MainKt
at Java.net.URLClassLoader.findClass(URLClassLoader.Java:381)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:424)
at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:331)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:357)
at Java.lang.Class.forName0(Native Method)
at Java.lang.Class.forName(Class.Java:264)
at com.intellij.rt.execution.application.AppMainV2.main(AppMainV2.Java:107)
Je suis coincé avec un si petit problème. Faites-moi savoir si quelqu'un de vous a été confronté à un problème comme celui-ci et quelle est la solution.
Le studio Android (intellij) fournit l'outil REPL (Real Eval Print Loop) pour écrire et exécuter du code kotlin.
Tool -> kotlin -> kotlin REPL
Écrire du code ou import
la classe
Conseils:
Comme indiqué dans le suivi des problèmes, une solution temporaire consiste à ajouter les éléments suivants au script racine build.gradle
:
subprojects { subProject ->
afterEvaluate {
if (subProject.plugins.hasPlugin("kotlin") && subProject.plugins.hasPlugin("Java-library")) {
subProject.kotlin.copyClassesToJavaOutput = true
subProject.jar.duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}
}
}
Voir: https://issuetracker.google.com/issues/68021152#comment12
Vous pouvez créer un nouveau module de bibliothèque Java dans lequel vous pouvez exécuter des projets non Android, voir cette réponse pour obtenir des instructions. Ceci est une question liée à Java, mais elle devrait également fonctionner avec les fonctions Kotlin main
. Edit: Je n'arrive pas à faire fonctionner ça maintenant.
Vous pouvez également utiliser IntelliJ IDEA à la place de Java/Kotlin/etc. IDE au lieu d'une version Android, l'édition communautaire est gratuite et prend en charge Kotlin.
Si vous avez juste besoin d’exécuter du code très simple, vous pouvez également le faire en ligne ici: https://try.kotlinlang.org/
Peut-être que cette méthode a fonctionné utilisez gradle-3.3 , au moins cela a fonctionné pour moi.
Ce n'est tout simplement pas possible pour le moment dans Android Studio 3.0.
Un bogue a déjà été enregistré pour cela: https://issuetracker.google.com/issues/68021152
J'ai rencontré le même problème et une solution de contournement consiste à exécuter votre code dans une classe de test sous le dossier test
, puis à l'aide du bouton droit de la souris sur Run {your test class}
.
C'est assez si vous voulez seulement jouer avec Kotlin.
C'est si simple, pas besoin de faire une tâche distincte ou spécifique.
Il suffit d'installer le plugin Kotlin dans Android Studio.
Maintenant, au moment de créer un nouveau projet dans Android Studio, cochez la case Kotlin.
Vous trouverez le code kotlin par défaut dans votre activité comme ci-dessous:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
Maintenant, vous pouvez faire ce que vous voulez avec Kotlin dans Android Studio;)
Il est supporté maintenant (V 3.2.1)
Je viens de terminer la mise à niveau de mon studio Android, j'ai créé un nouveau projet J'ai ensuite attendu que tout le bâtiment soit terminé (s'il vous est conseillé de mettre à niveau quelque chose, veuillez accepter).
Après cela, j'ai créé un nouveau fichier Kotlin et ajouté votre code, faites un clic droit et choisissez l'option Exécuter et c'est tout.
Je peux voir ce qui suit dans la console
Bonjour le monde
Processus terminé avec le code de sortie 0
Le moyen le plus simple est de créer un nouveau module de bibliothèque Java comme this et de le configurer pour Kotlin.
Vous devez également ajouter ceci dans votre build.gradle du module importé:
dependencies {
runtimeClasspath files(compileKotlin.destinationDir)
}