#android #build.gradle
#Android #build.gradle
Вопрос:
Я использую SDK, для которого требуются данные в «ByteString».
Когда я пытаюсь преобразовать BigInteger
в toByteString
, он выдает мне сообщение об ошибке.
BigInteger("d693a400", 16).toByteString()
Неразрешенная ссылка: toByteString
Я попытался включить protobuf
плагин, но все равно ошибка есть.
Уровень проекта — Build.gradle
dependencies {
classpath "com.android.tools.build:gradle:4.1.1"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
Уровень приложения — Build.gradle
plugins {
id 'com.android.application'
id "com.google.protobuf" version "0.8.15"
}
Ответ №1:
После того, как я добавил зависимость implementation "com.trustwallet:wallet-core:0.12.31"
, я мог бы использовать ByteString из com.google.protobuf
Я проверил репозиторий и нашел эти расширения https://github.com/trustwallet/wallet-core/blob/05375deb1b4b45d491b59ca775aa43e9e9a39b11/android/app/src/main/java/com/trustwallet/core/app/utils/Extensions.kt#L17 который является расширением строки.
Итак, я посмотрел их фактический пример и обнаружил, что они используют там пользовательскую функцию:
private fun BigInteger.toByteString(): ByteString {
return ByteString.copyFrom(this.toByteArray())
}
Комментарии:
1. Обратите внимание, что я никогда не использовал этот SDK. Но иногда может помочь поиск по коду репозитория.