Один популярный способ кодирования структур в строки использует JSON .
У вас есть определенные ограничения, такие как не получение всей информации (например, определенного типа каждого поля) , только сериализация экспортированных полей, а не обработка рекурсивных значений.
Рабочий пример:
package main
import (
"fmt"
"encoding/json"
)
type s struct {
Int int
String string
ByteSlice []byte
}
func main() {
a := &s{42, "Hello World!", []byte{0,1,2,3,4}}
out, err := json.Marshal(a)
if err != nil {
panic (err)
}
fmt.Println(string(out))
}
Вывести этот вывод:
{"Int":42,"String":"Hello World!","ByteSlice":"AAECAwQ="}
Попробуйте добавить эту зависимость к вашему файлу gradle:
implementation 'com.android.support:multidex:1.0.3'
Также вы должны использовать те же версии для библиотек служб поддержки и воспроизведения. И вам следует избегать использования «+» для последней версии. Измените эту часть:
implementation 'com.google.android.gms:play-services-maps:+'
implementation 'com.google.android.gms:play-services-auth:12.0.1'
implementation 'com.google.android.gms:play-services-location:12.0.1'
implementation 'com.google.android.gms:play-services:+'
implementation 'com.google.android.gms:play-services-ads:+'
на следующее:
implementation 'com.google.android.gms:play-services-maps:12.0.1'
implementation 'com.google.android.gms:play-services-auth:12.0.1'
implementation 'com.google.android.gms:play-services-location:12.0.1'
implementation 'com.google.android.gms:play-services:12.0.1'
implementation 'com.google.android.gms:play-services-ads:12.0.1'
EDIT: вы также можете добавить эту часть в файл градиента уровня приложения и повторите попытку. Я не видел, чтобы кто-то пробовал это, но это может сработать.
blockquote>allprojects { repositories { //... } subprojects { project.configurations.all { resolutionStrategy.eachDependency { details -> if (details.requested.group == 'com.google.android.gms' && !details.requested.name.contains('multidex') ) { details.useVersion "12.0.1" } } } } }
2ND UPDATE: Только что увидев эту зависимость ниже, охватывает все остальные, тогда это может вызвать проблема дублирования. Удалите другие зависимости и оставьте это:
blockquote>implementation 'com.google.android.gms:play-services:12.0.1'
@cubycode Я также сталкиваюсь с той же проблемой, и я попробовал все решения, перечисленные здесь.
Я получил ту же ошибку даже с «zzbq;» в конце
В app build.gradle мне пришлось обновить мою com.google.firebase: firebase-core до 16.0.1 в соответствии с той же строкой в build-native-fire-base-файле action / g1]
Пример:
app / build.gradle
implementation 'com.google.firebase:firebase-core:16.0.1'
action-native-firebase / android / build.gradle
compileOnly "com.google.firebase:firebase-core:16.0.1"
Возможно, вы используете разные версии библиотек.
Важным моментом является то, что вы можете использовать внешнюю библиотеку, которая использует другую версию служб воспроизведения (может быть старше). Пожалуйста, внимательно изучите все обновления внешних библиотек и сопоставьте их всем
Я решил это, удалив
implementation "com.google.android.gms:play-services:$play_service_version"
и сохраняя только важные зависимости.
В моем случае у меня был
implementation "com.google.android.gms:play-services:$play_service_version"
implementation "com.google.android.gms:play-services-location:$play_service"
И я удалил
implementation "com.google.android.gms:play-services:$play_service_version"
и сохранено
implementation "com.google.android.gms:play-services-location:$play_service"
Здесь play_service_version
& amp; play_service
- версии
У меня была та же проблема, и я решил ее. Обновите все ваши com.google.android.gms:play-services
зависимости до 15.0.0
. Это должно выглядеть так:
implementation 'com.google.android.gms:play-services-maps:15.0.0'
implementation 'com.google.android.gms:play-services-auth:15.0.0'
implementation 'com.google.android.gms:play-services-location:15.0.0'
implementation 'com.google.android.gms:play-services:15.0.0'
implementation 'com.google.android.gms:play-services-ads:15.0.0'
Как только вы это сделаете, это должно устранить проблему с обнаружением ошибки NoClassDefFoundError
(по крайней мере, для меня).