คำถามติดแท็ก kotlin

Kotlin เป็นภาษาการเขียนโปรแกรมแบบโอเพนซอร์ซที่ได้รับการสนับสนุนจาก JetBrains Kotlin ผสมผสานคุณสมบัติ OOP และคุณสมบัติการใช้งานและมุ่งเน้นไปที่การทำงานร่วมกันความปลอดภัยความคมชัดและการรองรับเครื่องมือ ปัจจุบันกำหนดเป้าหมายไปที่ JVM และ JavaScript และเป็นภาษาที่ได้รับการสนับสนุนอย่างเป็นทางการบน Android

3
ฟังก์ชั่น withTimeout ให้ IllegalStateException: ไม่มีการวนรอบเหตุการณ์ ใช้ runBlocking {…} เพื่อเริ่ม ในไคลเอนต์ Kotlin Multiplatform iOS
อัปเดต: ใช้งานได้ถ้าฉันเรียกใช้งาน coroutine ครั้งแรกโดยไม่ต้องหมดเวลาและด้วย withTimeout แต่ถ้าฉันรัน coroutine ด้วย Timeout ก่อนมันจะทำให้ฉันมีข้อผิดพลาด กันไปสำหรับ Async เช่นกัน ฉันกำลังสร้างแอพพลิเคชั่น kotlin Multicode ซึ่งฉันกำลังเรียกใช้ API ด้วย ktor ฉันต้องการมีฟังก์ชั่นไทม์เอาต์ที่กำหนดค่าได้ในคำขอ ktor ดังนั้นฉันจึงใช้ withTimeout ที่ระดับ coroutine นี่คือการเรียกใช้ฟังก์ชั่นของฉันกับเครือข่าย API suspend fun <T> onNetworkWithTimeOut( url: String, timeoutInMillis: Long, block: suspend CoroutineScope.() -> Any): T { return withTimeout(timeoutInMillis) { withContext(dispatchers.io, block) } as …

2
Moshi 1.9.1 ไม่สามารถทำให้ชนิด Kotlin เป็นอนุกรมได้
ฉันมีรหัสการทำงานที่เป็นอนุกรมข้อมูล / deserializing ใช้ Moshi 1.8.0 การอัปเกรดเป็น 1.9.1 จะนำไปสู่ข้อขัดข้องเมื่อพยายามทำให้เป็นอันดับ: java.lang.IllegalArgumentException: ไม่สามารถทำให้เป็นอนุกรมชนิด Kotlin com.xxx.Spot การสะท้อนลำดับของคลาส Kotlin โดยไม่ใช้ kotlin-reflect นั้นมีพฤติกรรมที่ไม่ได้กำหนดและไม่คาดคิด กรุณาใช้ KotlinJsonAdapter จากสิ่งประดิษฐ์ moshi-kotlin หรือใช้รหัส gen จากสิ่งประดิษฐ์ moshi-kotlin-codegen นี่คือรหัส serializer: val moshi = Moshi.Builder().build() val dataListType = newParameterizedType(List::class.java, T::class.java) val adapter: JsonAdapter<List<T>> = moshi.adapter(dataListType) val json = adapter.toJson(dataList) และคลาส T ที่สอดคล้องกันคือ @IgnoreExtraProperties …
12 android  kotlin  moshi 

8
ไม่สามารถหา androidsdk.modules
ดังนั้นในช่วงกลางของการเรียกใช้โปรแกรมของฉัน build.gradle ของฉันล้มเหลวด้วยข้อผิดพลาดนี้ ฉันหมายความว่ามันใช้งานได้จริงก่อนหน้านี้และไม่ได้เป็นวินาทีต่อมา ฉันไม่ได้เปลี่ยนอะไรเลย Could not find androidsdk.modules:shield:unspecified. Required by: project :app > com.facebook.android:facebook-login:5.15.2 project :app > com.facebook.android:facebook-core:5.15.2 project :app > com.facebook.android:facebook-common:5.15.2 Search in build.gradle files นี่คือการไล่ระดับของฉัน apply plugin: 'com.android.application' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-android' android { compileSdkVersion 28 buildToolsVersion "29.0.2" defaultConfig { multiDexEnabled true applicationId "com.example.casualdatingapp" minSdkVersion …

3
Android RecognitionListener: onResults ถูกเรียกสองครั้ง
ฉันมีโครงการที่ใช้ RecognitionListener เขียนใน Kotlin ฟังก์ชั่นพูดเป็นข้อความประสบความสำเร็จและไม่เคยมีปัญหาใด ๆ ตั้งแต่สัปดาห์ที่แล้วฟังก์ชั่น onResult เริ่มถูกเรียกสองครั้ง ไม่มีการเปลี่ยนแปลงใด ๆ ในโครงการ ฉันทดสอบเวอร์ชันเก่าของโครงการ (จากเดือนก่อน) และสิ่งเหล่านั้นมีปัญหาเดียวกัน มีสามกรณีที่แตกต่างกัน: ข้อความขนาดเล็ก (1 ถึง 8 คำ) และ SpeechRecognizer จะหยุดโดยอัตโนมัติ -> onResult () เรียกว่าสองครั้ง; ข้อความขนาดใหญ่ (9 คำขึ้นไป) และ SpeechRecognizer ถูกหยุดโดยอัตโนมัติ -> พฤติกรรมปกติ (onResult () เรียกว่าหนึ่งครั้ง); ขนาดข้อความใด ๆ และฟังก์ชั่น SpeechRecognizer stopListening () เรียกว่าด้วยตนเอง (จากรหัส) -> พฤติกรรมปกติ นี่คือรหัสคลาสของคำพูดเป็นข้อความแบบ …

2
Kotlin Flow กับ LiveData
ใน Google I / O ล่าสุด Jose Alcerreca และ Yigit Boyar บอกกับเราว่าเราไม่ควรใช้ LiveData เพื่อดึงข้อมูลอีกต่อไป ตอนนี้เราควรใช้ฟังก์ชั่นระงับสำหรับการดึงข้อมูลครั้งเดียวและใช้ Flow ของ Kotlin เพื่อสร้างกระแสข้อมูล ฉันยอมรับว่า coroutines นั้นยอดเยี่ยมสำหรับการดึงข้อมูลแบบครั้งเดียวหรือการดำเนินการ CRUD อื่น ๆ เช่นการแทรกเป็นต้น แต่ในกรณีที่ฉันต้องการสตรีมข้อมูลฉันไม่เข้าใจว่าข้อดีของโฟลว์คืออะไร สำหรับฉันแล้วดูเหมือนว่า LiveData ก็ทำเช่นเดียวกัน ตัวอย่างที่มี Flow: ViewModel val items = repository.fetchItems().asLiveData() กรุ fun fetchItems() = itemDao.getItems() เชียงดาว @Query("SELECT * FROM item") fun getItems(): Flow<List<Item>> …

2
Corotines Kotlin“ รับประกันก่อนเกิด”
corotines Kotlin ให้การรับประกัน "ที่เกิดขึ้นก่อนหน้า" หรือไม่? ตัวอย่างเช่นมีการรับประกัน "ที่เกิดขึ้นก่อน" ระหว่างการเขียนถึงmutableVarและการอ่านในภายหลัง (อาจ) เธรดอื่น ๆ ในกรณีนี้: suspend fun doSomething() { var mutableVar = 0 withContext(Dispatchers.IO) { mutableVar = 1 } System.out.println("value: $mutableVar") } แก้ไข: บางทีตัวอย่างเพิ่มเติมอาจทำให้คำถามชัดเจนขึ้นเพราะมันมากขึ้น Kotlin-ish (ยกเว้นความไม่แน่นอน) โค้ดนี้ปลอดภัยสำหรับเธรดหรือไม่: suspend fun doSomething() { var data = withContext(Dispatchers.IO) { Data(1) } System.out.println("value: ${data.data}") } private data …

1
จะครอบคลุมการตรวจสอบโมฆะที่ไม่จำเป็นที่สร้างโดย Kotlin ได้อย่างไร
พิจารณาตัวอย่าง Kotlin น้อยที่สุดต่อไปนี้: fun <U> someWrapper(supplier: () -> U): () -> (U) { return { supplier() } } fun foo(taskExecutor: TaskExecutor): Int { val future = CompletableFuture.supplyAsync(someWrapper { 42 }, taskExecutor::execute) return future.join() } @Test public void shouldFoo() { assertThat(foo(), is(42)); } ฉันมีกฎความครอบคลุมสาขาใน Jacoco ซึ่งไม่สามารถใช้รหัสด้านบนได้กล่าวว่า 1 ใน 2 สาขาไม่ครอบคลุมในสายของการsomeWrapperโทร น่าเสียดายที่มันไม่มีตัวเลือกให้ฉันยกเว้นชั้นเรียนทั้งหมดที่someWrapperถูกเรียก …

1
การซิงค์ Gradle ล้มเหลว: วิธีที่ไม่สนับสนุน: KotlinPlatformContainer.supports ()
ฉันเพิ่งอัปเดต Android Studio เป็นเวอร์ชันล่าสุด 3.5.1 และฉันรู้ว่าได้รับข้อผิดพลาดต่อไปนี้: การซิงค์ Gradle ล้มเหลว: วิธีที่ไม่สนับสนุน: KotlinPlatformContainer.supports () เวอร์ชั่นของ Gradle ที่คุณเชื่อมต่อไม่รองรับวิธีการนั้น เพื่อแก้ไขปัญหาคุณสามารถเปลี่ยน / อัปเกรดเวอร์ชันเป้าหมายของ Gradle ที่คุณเชื่อมต่อ หรือคุณสามารถละเว้นข้อยกเว้นนี้และอ่านข้อมูลอื่น ๆ จากโมเดล ฉันใช้ Kotlin Multiplatform ในสองโมดูล แต่ไม่รู้ว่าเกี่ยวข้องหรือไม่

1
ฐานข้อมูลห้องที่มีคลาสอินไลน์ Kotlin เป็นฟิลด์ Entity
ฉันกำลังพยายามหาห้อง ( https://developer.android.com/topic/library/architecture/room ) ทำงานร่วมกับคลาสอินไลน์ของ Kotlin ตามที่อธิบายไว้ในบทความ Jake Whartons Inline Classes Make ID ฐานข้อมูลที่ยอดเยี่ยม : @Entity data class MyEntity( @PrimaryKey val id: ID, val title: String ) inline class ID(val value: String) เมื่อรวบรวมห้องนี้ก็บ่นว่า หน่วยงานและ Pojos ต้องมีตัวสร้างสาธารณะที่ใช้งานได้ คุณสามารถมีคอนสตรัคเตอร์ว่างเปล่าหรือคอนสตรัคเตอร์ซึ่งพารามิเตอร์ตรงกับฟิลด์ (ตามชื่อและประเภท) มองหารหัส Java ที่สร้างขึ้นฉันพบ: private MyEntity(String id, String title) { this.id = id; …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.