Невозможно получить привязку gomobile для работы с Java
Версия Go: 1.7.5
GOPATH = D: / GoWork
React Native версия 0.41
Приведенный ниже код - это пакет связывания go в D:\GoWork\src\rngo\rngo\rngo.go
Очень просто, просто возвращая строку
package rngo
// RNcall is used to bind with RN
func RNcall() string {
return "From Go platform"
}
Выполнение приведенной ниже команды из> D: \ GoWork \ src \ rngo
gomobile bind -target android -o rngo.aar -v .
Подробный вывод ниже, кажется, хорошо
напишите C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\classes.go
напишите C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\classes.h
напишите C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\classes.c
напишите C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gen\src\Java\interfaces.go rngo/rngo
напишите C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\fakegopath\pkg\android_arm\rngo\rngo.a напишите C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\go_rngomain.go
напишите C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\go_main.go
напишите C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\androidlib\main.go
напишите C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\android\src\main\java\rngo\Rngo.java
напишите C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\java_rngo.c
напишите C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\rngo.h
напишите C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\android\src\main\java\go\Universe.java
напишите C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\android\src\main\java\go\error.java
напишите C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\java_universe.c
напишите C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\universe.h
напишите C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\seq_android.go
напишите C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\seq_android.c
напишите C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\seq.h
напишите C: \ Users \ Minty \ AppData \ Local \ Temp \ gomobile-work-855641675 \ gomobile_bind \ seq.go
Java / C / Пользователи /Minty/AppData/Local/Temp/gomobile-work-855641675/gomobile_bind аргументы командной строки rngo / rngo Java
/ C / Users /Minty/AppData/Local/Temp/gomobile-work-855641675/gomobile_bind аргументы командной строки rngo / rngo Java
/ C / Users /Minty/AppData/Local/Temp/gomobile-work-855641675/gomobile_bind аргументы командной строки rngo / rngo Java
/ C / Пользователи /Minty/AppData/Local/Temp/gomobile-work-855641675/gomobile_bind
/ # / C / Пользователи /Minty/AppData/Local/Temp/gomobile-work-855641675/gomobile_bind
D:\Android\ SDK \ NDK-расслоение \ компилированные инструменты \x86_64-4.9\ прекомпилированное \ Windows-x86_64/ Библиотека / GCC /x86_64-линукс-андроид /4.9.x/../../../../x86_64-linux-android/bin\ld: предупреждение: пропуск несовместимых D:\Android\sdk\ndk-bundle\ платформы \android-21\arch-x86_64/usr/lib/liblog.so при поиске журнала
D:\Android\ SDK \ NDK-расслоение \ компилированные инструменты \x86_64-4.9\ прекомпилированное \ Windows-x86_64/ Библиотека / GCC /x86_64-линукс-андроид /4.9.x/../../../../x86_64-linux-android/bin\ld: предупреждение: пропуск несовместимых D:\Android\sdk\ndk-bundle\ платформы \android-21\arch-x86_64/usr/lib/libdl.so при поиске dl
D:\Android\ SDK \ NDK-расслоение \ компилированные инструменты \x86_64-4.9\ прекомпилированное \ Windows-x86_64/ Библиотека / GCC /x86_64-линукс-андроид /4.9.x/../../../../x86_64-linux-android/bin\ld: предупреждение: пропуск несовместимых D:\Android\sdk\ndk-bundle\ платформы \android-21\arch-x86_64/usr/lib/libc.so при поиске c
D:\Android\ SDK \ NDK-расслоение \ компилированные инструменты \x86_64-4.9\ прекомпилированное \ Windows-x86_64/ Библиотека / GCC /x86_64-линукс-андроид /4.9.x/../../../../x86_64-linux-android/bin\ld: предупреждение: пропуск несовместимых D:\Android\sdk\ndk-bundle\ платформы \android-21\arch-x86_64/usr/lib/libdl.so при поиске dl
командная строка-аргументы
aar: AndroidManifest.xml
aar: proguard.txt
aar: classes.jar
банка: МЕТА-ИНФ / МАНИФЕСТ.МФ
jar: go / LoadJNI.class
jar: go / Seq $ GoObject.class
jar: go / Seq $ Proxy.class
jar: go / Seq $ Ref.class
jar: go / Seq $ RefMap.class
jar: go / Seq $ RefTracker.class
jar: go / Seq.class jar: go / Universe $ proxyerror.class jar: go / Universe.class
jar: go / error.class
jar: rngo / Rngo.class
aar: jni / armeabi-v7a / libgojni.so
aar: jni / arm64-v8a / libgojni.so
aar: jni / x86 / libgojni.so
aar: jni / x86_64 / libgojni.so
aar: R.txt
aar: res /
Успешно создан rngo.aar, поскольку сообщения об ошибке нет, и я вижу этот файл в D:\GoWork\src\rngo\rngo.aar
Затем я вручную импортирую файл rngo.aar в проект React Native из студии Android
- Файл> Создать> Новый модуль> Импортировать пакет.aar/.jar> # дать путь к rngo.aar#
- Файл> Структура проекта> приложение> Зависимости> Зависимость модуля> rngo.aar
Внутри IDE, в MainActivity.java я могу успешно выполнить 'import go.rngo. *;', но я не могу получить 'go.rngo.Rngo.RNcall()' или 'go.rngo.Rngo;' работать
Сборка этого приложения для Android выдает ошибку "не удается найти символ"
D: \ RN \ gomobile \ android \ app \ src \ main \ java \ com \ gomobile \ RngoModule.java: 10: ошибка: не удается найти символ
import go.rngo;
^символ: класс рнго
местоположение: пакет идти
1 ошибка
:app:compileDebugJavaWithJavac FAILED
Заключение
Я делаю что-то ужасно неправильно, что я не могу заставить эту простую вещь работать. Я потратил весь день на Google, но безрезультатно. Поэтому мне нужна помощь, чтобы заставить это работать. Все, что мне нужно, это простой код go, который подключается для реакции на native hasselfree.
Спасибо за чтение всего этого. Я ценю его.
1 ответ
Благодаря Элиаснаур. Наконец-то у меня все заработало. Начиная с версии 1.7.* У вас нет доступа к пакету go. Вместо этого получите доступ к вашей посылке напрямую, как это
До:
import go.rngo.Rngo;
После:(с 1.7.*)
import rngo.Rngo;