NativeScript / NativeScript/android
Kotlin issues (companion object)
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- C++
- Estrellas
- 563
- Forks
- 144
- Merge medio
- 10 h 46 min
- PR fusionados (30 d)
- 14
Descripción
Environment
Provide version numbers for the following components (information can be retrieved by running tns info in your project folder or by inspecting the package.json of the project):
- CLI: 8.6.5
- Cross-platform modules: 8.6.2
- Android Runtime: 8.6.1 (also 8.7.0-alpha.1)
- iOS Runtime (if applicable): -
- Plugin(s): -
Describe the bug
I tried to do some basic stuff with Kotlin stuff inside a NativeScript app (as I have no experience with Kotlin development) and I am experiencing some issues with companion objects.
I added this Kotlin file to App_Resources/Android/src/main/java
// KotlinTest.kt
package com.example
class KotlinTest {
val hello = "Hello from Kotlin!" //working
@JvmField
val instanceTestField : Int = 1234 //working
companion object {
@JvmStatic
fun increment(num: Int): Int { //working
return num + 1
}
@JvmField
val message : String = "Hi!" //not working
const val VERSION = 9 //not working
}
}
And I am trying to access the values like this in the NativeScript app:
const testObject = new com.example.KotlinTest();
console.log(testObject.hello); //working
console.log(testObject.instanceTestField); //working
console.log(com.example.KotlinTest.increment(5)); //working
console.log(com.example.KotlinTest.message); //not working
console.log(com.example.KotlinTest.VERSION); //not working
As far as I can read here about @JvmField annotation and here about const modifier this is valid Kotlin so it also shold work in NativeScript, but I always get undefined for those elements.
To Reproduce
Start the demo app provided below and check the logs in console.
Expected behavior
JvmFields and const values inside companion objects should be accessible in NativeScript.
Sample project
ns-android-kotlin.zip
Additional context
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con el ejemplo de Kotlin en App_Resources/Android/src/main/java y el proyecto de ejemplo ns-android-kotlin.zip enlazado. Ejecuta la aplicación de demostración e inspecciona la salida de la consola en busca de los campos del companion-object, comparándolos con los campos y el método que funcionan. Se considera terminado cuando los valores @JvmField y const son accesibles desde NativeScript como se espera.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- android, kotlin
- Área
- mobile
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100