-
-
Notifications
You must be signed in to change notification settings - Fork 50
Description
I want to use the library on an android app. I want android compatible networking layer.
I am trying to test with an android app but I am getting difficult time initializing the library and using it. I am getting the following error:
2025-11-02 19:17:44.506 8675-8675 ImeTracker io....igbangking.eulerstreamtestapp I io.github.king.eulerstreamtestapp:9c7da47e: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN 2025-11-02 19:17:46.369 8675-8701 AndroidRuntime io....igbangking.eulerstreamtestapp E FATAL EXCEPTION: DefaultDispatcher-worker-2 (Ask Gemini) Process: io.github.bigbangking.eulerstreamtestapp, PID: 8675 java.lang.NoClassDefFoundError: Failed resolution of: Ljava/net/http/HttpResponse$BodyHandlers; at io.github.jwdeveloper.tiktok.http.HttpClient.toJsonResponse(HttpClient.java:77) at io.github.jwdeveloper.tiktok.TikTokLiveHttpClient.getLiveUserData(TikTokLiveHttpClient.java:118) at io.github.jwdeveloper.tiktok.TikTokLiveHttpClient.fetchLiveUserData(TikTokLiveHttpClient.java:107) at io.github.jwdeveloper.tiktok.TikTokLiveClient.tryConnect(TikTokLiveClient.java:126) at io.github.jwdeveloper.tiktok.TikTokLiveClient.connect(TikTokLiveClient.java:86) at io.github.jwdeveloper.tiktok.TikTokLiveClientBuilder.buildAndConnect(TikTokLiveClientBuilder.java:185) at io.github.bigbangking.eulerstreamtestapp.MainActivityKt.setupLive(MainActivity.kt:76) at io.github.bigbangking.eulerstreamtestapp.MainActivityKt$Greeting$1$1$1$1.invokeSuspend(MainActivity.kt:52) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:101) at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:113) at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:589) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:823) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:720) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:707) Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@2026d44, Dispatchers.IO] Caused by: java.lang.ClassNotFoundException: Didn't find class "java.net.http.HttpResponse$BodyHandlers" on path: DexPathList[[dex file "/data/data/io.github.bigbangking.eulerstreamtestapp/code_cache/.overlay/base.apk/classes3.dex", zip file "/data/app/~~_oDYIzSIw7bWrWLKXordHg==/io.github.bigbangking.eulerstreamtestapp-Z8ftlQmX4dBxjFeLs1JSiQ==/base.apk"],nativeLibraryDirectories=[/data/app/~~_oDYIzSIw7bWrWLKXordHg==/io.github.bigbangking.eulerstreamtestapp-Z8ftlQmX4dBxjFeLs1JSiQ==/lib/x86_64, /data/app/~~_oDYIzSIw7bWrWLKXordHg==/io.github.bigbangking.eulerstreamtestapp-Z8ftlQmX4dBxjFeLs1JSiQ==/base.apk!/lib/x86_64, /system/lib64, /system_ext/lib64]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259) at java.lang.ClassLoader.loadClass(ClassLoader.java:637) at java.lang.ClassLoader.loadClass(ClassLoader.java:573) ... 16 more
On an empty new kotlin app.
Following is the mainActivity just for testing:
package io.github.bigbangking.eulerstreamtestapp
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Button
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import io.github.bigbangking.eulerstreamtestapp.ui.theme.EulerStreamTestAppTheme
import io.github.jwdeveloper.tiktok.TikTokLive
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {
EulerStreamTestAppTheme {
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
Greeting(
name = "Android",
modifier = Modifier.padding(innerPadding)
)
}
}
}
}
}
@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
Column(modifier = modifier,) {
Text(
text = "Hello $name!",
modifier = modifier
)
Button(
onClick = {
CoroutineScope(Dispatchers.IO).launch {
setupLive()
}
},
modifier = modifier
) {
Text("Test Euler Stream")
}
}
}
fun setupLive() {
TikTokLive.newClient("tv_asahi_news")
/*configure { settings ->
.apply {
// Listen for gifts
onGift { _, _ -> println("Thank you for the gift!") }
// Configure client settings
// Set the API key
settings.apiKey = "YOUR_API_KEY"
}
}*/.buildAndConnect()
}
@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
EulerStreamTestAppTheme {
Greeting("Android")
}
}
And following the build.gradle.kts file:
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
}
android {
namespace = "io.github.bigbangking.eulerstreamtestapp"
compileSdk {
version = release(36)
}
defaultConfig {
applicationId = "io.github.bigbangking.eulerstreamtestapp"
minSdk = 29
targetSdk = 36
versionCode = 1
versionName = "1.0"
multiDexEnabled = true
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "17"
}
buildFeatures {
compose = true
}
}
dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.compose.ui)
implementation(libs.androidx.compose.ui.graphics)
implementation(libs.androidx.compose.ui.tooling.preview)
implementation(libs.androidx.compose.material3)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
androidTestImplementation(platform(libs.androidx.compose.bom))
androidTestImplementation(libs.androidx.compose.ui.test.junit4)
debugImplementation(libs.androidx.compose.ui.tooling)
debugImplementation(libs.androidx.compose.ui.test.manifest)
implementation("com.github.jwdeveloper.TikTok-Live-Java:Client:1.11.8-Release")
}