korlibs / korlibs/korge

Android with supportVibration() + Didn't find class "androidx.core.content.ContextCompat"

Open
#309 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Kotlin
Stars
3k
Forks
148
Avg merge
13h 44m
Merged PRs (30d)
1

Description

After updating to KorgeGE `2.0.0.1` I can't start my Android app with native vibration support.
Running on Android `10`.
``` kotlin
korge {
supportVibration()
```

``` kotlin
NativeVibration(views())
```
You can check out the full project here:
https://github.com/TobseF/HitKlack/tree/AddVibrationKorge2

### 📜 Stacktrace
```
Compiler allocated 5588KB to compile void com.soywiz.korau.format.mp3.JavaMp3Decoder.samples_III$korau_debug(com.soywiz.korau.format.mp3.JavaMp3Decoder$Buffer, int, com.soywiz.korau.format.mp3.JavaMp3Decoder$MainDataReader, int, int, int, int, float[], float[], com.soywiz.korau.format.mp3.JavaMp3Decoder$SoundData)
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/core/content/ContextCompat;
at com.soywiz.korge.service.vibration.NativeVibration.(NativeVibration.kt:19)
at de.tfr.game.Controller.create(Controller.kt:34)
at de.tfr.game.HitKlack.create(HitKlack.kt:34)
at MainKt$main$2.invokeSuspend(main.kt:16)
at MainKt$main$2.invoke(Unknown Source:10)
at com.soywiz.korge.Korge$invoke$4$4$1.invokeSuspend(Korge.kt:184)
at com.soywiz.korge.Korge$invoke$4$4$1.invoke(Unknown Source:10)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:91)
at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:194)
at com.soywiz.korge.Korge$invoke$4$4.invokeSuspend(Korge.kt:181)
at com.soywiz.korge.Korge$invoke$4$4.invoke(Unknown Source:10)
at com.soywiz.korio.async.AsyncExtKt$_launch$1.invokeSuspend(AsyncExt.kt:39)
at com.soywiz.korio.async.AsyncExtKt$_launch$1.invoke(Unknown Source:10)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:55)
at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:111)
at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:158)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56)
at kotlinx.coroutines.BuildersKt.launch(Unknown Source:1)
at com.soywiz.korio.async.AsyncExtKt._launch(AsyncExt.kt:37)
at com.soywiz.korio.async.AsyncExtKt.launchImmediately(AsyncExt.kt:10)
at com.soywiz.korge.Korge$invoke$4.invokeSuspend(Korge.kt:180)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7616)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
used by: java.lang.ClassNotFoundException: Didn't find class "androidx.core.content.ContextCompat" on path: DexPathList[[zip file "/data/app/de.tfr.game.hitklack-q_8DXI7LVAQ-wFq3v51ZrA==/base.apk"],nativeLibraryDirectories=[/data/app/de.tfr.game.hitklack-q_8DXI7LVAQ-wFq3v51ZrA==/lib/arm64, /system/lib64, /product/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
... 30 more
FATAL EXCEPTION: main
Process: de.tfr.game.hitklack, PID: 11449
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/core/content/ContextCompat;
at com.soywiz.korge.service.vibration.NativeVibration.(NativeVibration.kt:19)
at de.tfr.game.Controller.create(Controller.kt:34)
at de.tfr.game.HitKlack.create(HitKlack.kt:34)
at MainKt$main$2.invokeSuspend(main.kt:16)
at MainKt$main$2.invoke(Unknown Source:10)
at com.soywiz.korge.Korge$invoke$4$4$1.invokeSuspend(Korge.kt:184)
at com.soywiz.korge.Korge$invoke$4$4$1.invoke(Unknown Source:10)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:91)
at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:194)
at com.soywiz.korge.Korge$invoke$4$4.invokeSuspend(Korge.kt:181)
at com.soywiz.korge.Korge$invoke$4$4.invoke(Unknown Source:10)
at com.soywiz.korio.async.AsyncExtKt$_launch$1.invokeSuspend(AsyncExt.kt:39)
at com.soywiz.korio.async.AsyncExtKt$_launch$1.invoke(Unknown Source:10)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:55)
at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:111)
at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:158)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56)
at kotlinx.coroutines.BuildersKt.launch(Unknown Source:1)
at com.soywiz.korio.async.AsyncExtKt._launch(AsyncExt.kt:37)
at com.soywiz.korio.async.AsyncExtKt.launchImmediately(AsyncExt.kt:10)
at com.soywiz.korge.Korge$invoke$4.invokeSuspend(Korge.kt:180)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7616)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.core.content.ContextCompat" on path: DexPathList[[zip file "/data/app/de.tfr.game.hitklack-q_8DXI7LVAQ-wFq3v51ZrA==/base.apk"],nativeLibraryDirectories=[/data/app/de.tfr.game.hitklack-q_8DXI7LVAQ-wFq3v51ZrA==/lib/arm64, /system/lib64, /product/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
... 30 more
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at NativeVibration.kt:19 and inspect how supportVibration() brings Android dependencies into the app. Reproduce the failure with the linked HitKlack project, then verify that the Android app starts with native vibration support without the ContextCompat NoClassDefFoundError.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, kotlin
Domain
mobile-dev
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.