В чем причина сбоя моего приложения Kotlin для Android?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 В чем причина сбоя моего приложения Kotlin для Android?

Сообщение Anonymous »

Код: Выделить всё

import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import com.example.composetutorial.R

class MainActivity : AppCompatActivity() {

private lateinit var translationService: TranslationService
private lateinit var translateButton: Button
private lateinit var resultTextView: TextView

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

translationService = TranslationService()
translateButton = findViewById(R.id.translateButton)
resultTextView = findViewById(R.id.resultTextView)

translateButton.setOnClickListener {
val audioFilePath = "./audio.wav"
val targetLanguage = "en" // 目标语言,例如英语
translationService.translateAudio(audioFilePath, targetLanguage) { translatedText ->
runOnUiThread {
resultTextView.text = translatedText ?: "翻译失败"
}
}
}
}

}

Код: Выделить всё

import okhttp3.\*
import java.io.File
import java.io.IOException
import android.util.Base64

class TranslationService {

private val client = OkHttpClient()

fun translateAudio(audioFilePath: String, targetLanguage: String, callback: (String?) -> Unit) {
// 读取音频文件并转换为Base64
val audioFile = File(audioFilePath)
val audioBytes = audioFile.readBytes()
val base64Audio = Base64.encodeToString(audioBytes, Base64.DEFAULT)

// 创建JSON请求体
val requestBody = FormBody.Builder()
.add("audio", base64Audio)
.add("target_language", targetLanguage)
.build()

// 创建请求
val request = Request.Builder()
.url("127.0.0.1/8088")
.post(requestBody)
.build()

// 发送请求
client.newCall(request).enqueue(object : Callback {
override fun onResponse(call: Call, response: Response) {
response.use {
if (!it.isSuccessful) throw IOException("Unexpected code $response")

// 解析响应
val translatedText = it.body?.string()
callback(translatedText)
}
}

override fun onFailure(call: Call, e: IOException) {
callback(null)
}
})
}

}

Код: Выделить всё

plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
}

android {
namespace = "com.example.composetutorial"
compileSdk = 35

defaultConfig {
applicationId = "com.example.composetutorial"
minSdk = 24
targetSdk = 35
versionCode = 1
versionName = "1.0"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
}

buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.1"
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}

}

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.ui)
implementation(libs.androidx.ui.graphics)
implementation(libs.androidx.ui.tooling.preview)
implementation(libs.androidx.material3)
implementation(libs.androidx.appcompat)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
androidTestImplementation(platform(libs.androidx.compose.bom))
androidTestImplementation(libs.androidx.ui.test.junit4)
debugImplementation(libs.androidx.ui.tooling)
debugImplementation(libs.androidx.ui.test.manifest)
// 使用libs定义的方式
implementation(libs.okhttp)
implementation(libs.moshi)
implementation(libs.androidx.appcompat)  // 确保这个是正确的引用

}
Я столкнулся с неприятной проблемой в моем приложении Kotlin для Android: оно постоянно дает сбой, и я не могу точно определить причину. Несмотря на все мои усилия по устранению неполадок, я совершенно не понимаю, как их решить. Кроме того, я пытался обратиться за помощью по поводу переполнения стека, но их требования к публикации обременительны. Они требуют, чтобы я включил ненужные детали, которые на самом деле не имеют отношения к моему вопросу, что еще больше усложняет процесс. Будем очень признательны за любые идеи или предложения о том, как это исправить!

Подробнее здесь: https://stackoverflow.com/questions/791 ... -app-crash
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»