Я пытаюсь сделать приложение в Android Studio о расчете дескрипторов из молекулы с улыбками. Я использую Kotlin для моего приложения и для модернизации HTTP-клиента. Но для расчета дескрипторов я использую Python.
Библиотека, которую я использую для расчета дескрипторов, - это rdkit. Поскольку мне нужно каким -то образом показать результаты для TextViews, я попытался использовать хакуопию. Но хаквопия не совместима с rdkit. Поэтому я решил использовать API. В приложении вы вводите улыбки, а затем отправит в API, дескрипторы будут рассчитаны и будут отправлены обратно в приложение. Результаты будут отображаться в TextView. Но по какой -то причине возникла ошибка: неразрешенная ссылка «Рассчитывать propprop_a».: 64 (и) неразрешенная ссылка 'CulgulateProp_B'.: 67 < /p>
//fragment file
val response1 = Utils.api.calculateprop_a(SmileRequest(smiles))
val response2 = Utils.api.calculateprop_b(SmileRequest(smiles))
< /code>
Кажется, что Android Studio не распознает функции, хотя я импортировал их. Они также присутствуют в файле интерфейса. < /P>
//fragment file
package com.example.myapplication
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.EditText
import android.widget.ProgressBar
import android.widget.TextView
import android.widget.Toast
import com.chaquo.python.Python
import com.example.myapplication.models.Response1
import com.google.firebase.appdistribution.gradle.ApiService
import com.example.myapplication.models.SmileRequest
import com.example.myapplication.utils.Utils
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import retrofit2.Response
< /code>
//interface file (ApiService.kt)
package com.example.myapplication
import com.example.myapplication.models.Response1
import com.example.myapplication.models.Response2
import com.example.myapplication.models.SmileRequest
import retrofit2.Response
import retrofit2.http.Body
import retrofit2.http.POST
interface ApiService {
@POST("/prop1")
suspend fun calculateprop_a(@Body request: SmileRequest): Response
@POST("/prop2")
suspend fun calculateprop_b(@Body request: SmileRequest): Response
}
< /code>
In dataclass file do I also not find any mistakes.
//dataclsaa file (SmileRequest.kt)
package com.example.myapplication.models
//[molw, logp, rotb, tpsa, numhdon, numhacp]
data class SmileRequest(val smiles: String)
data class Response1(
val status: String?,
val smiles: String?,
val molwt: Double?,
val logp: Double?,
val rotb: Int?,
val tpsa: Double?,
val numhdon: Int?,
val numhacp: Int?,
val error: String?
)
//[wie_index, bal_index, ran_index, zgr_m1, zgr_m2, tp, surf_area]
data class Response2(
val smiles: String?,
val wie_index: Double?,
val bal_index: Double?,
val ran_index: Double?,
val zgr_m1: Double?,
val zgr_m2: Double?,
val tp: Double?,
val surf_area: Double?,
val error: String?
)
< /code>
Likewise in object file.
//object file (Utils.kt)
package com.example.myapplication.utils
import com.google.firebase.appdistribution.gradle.ApiService
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
object Utils {
private const val BASE_URL = "secret"
val api: ApiService by lazy {
Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(ApiService::class.java)
}
}
< /code>
Don´t really know what to do. I´m new in API field. So, I hope for help.
Подробнее здесь: https://stackoverflow.com/questions/796 ... es-and-ret
Как правильно реализовать вызовы API в фрагменте Android, используя Coroutines и Monhofit? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение