Я пытаюсь сгенерировать файл .aar в Windows 7 64bit с помощью команды gomobile bind --target=android
, и он выдает ошибку заголовка. Я искал и не мог найти ответ на это. Я пытаюсь сделать приложение в Android Studio с помощью программы, и первая его часть выглядит следующим образом:
package main (I changed it to "random" for the bind command to work - that's the thing to do, right?)
import (
"github.com/elazarl/goproxy"
"text/template"
"net/http"
"regexp"
"bytes"
"log"
"net"
)
Ошибка выглядит следующим образом:
gomobile: go build -buildmode=c-shared -o=C:\Users\\[User name]\AppData\Local\Temp\gomobile-work-101707703\android\src\main\jniLibs\armeabi-v7a\libgojni.so gobind failed: exit status 1
..\\[User name]\AppData\Local\Temp\gomobile-work-101707703\src\gobind\go_randommain.go:17:2: local import "." in non-local package
Одно из руководств, которым я следую, это https://dzone.com/articles/gomobile-library-development-for-iosandroid, и именно оттуда я делаю большинство вещей. Я никогда не слышал об этом языке, поэтому я начинающий (извините, если это глупый вопрос).
Согласно тому, что я прочитал, это могло произойти из-за того, что, например, в программе было ". \ Greetings" (что-то с ". \", Которое было связано с относительными путями), поэтому я понятия не имею, почему это происходит. Может кто-нибудь помочь? Если мне нужно предоставить больше данных, просто скажите мне, и я предоставлю их.
Заранее спасибо!
EDIT:
Я попытался изменить «пакет случайный» на «пакет вещь», а последняя часть ошибки изменила «случайный» на «вещь»:
..\\[User name]\AppData\Local\Temp\gomobile-work-101707703\src\gobind\go_thingmain.go:17:2: local import "." in non-local package
Разве я не должен пытаться конвертировать эту программу, потому что она написана так, что ее невозможно конвертировать? Или что-то еще?
И если это поможет каким-либо образом, у моего имени пользователя в Windows есть пробел, хотя в CMD он появляется с незавершенным именем и ~ 1 в конце, поэтому у него нет пробела, по крайней мере, при возврате команда. И я не могу понять, на что указывают эти вещи 17: 2. Я знаю, что это строка и столбец, но я не знаю, где искать ошибку, поскольку я даже пытался перейти к сгенерированному файлу и не могу его найти. Когда я скопировал созданную папку, в ней было только 4 или 5 файлов, а папок не было, поэтому я не вижу ошибки в этом файле, чтобы понять это ... Надеюсь, кто-то знает ответ или возможный ответ на этот вопрос.
РЕДАКТИРОВАТЬ 2:
Теперь я решил попытаться удалить весь код после импорта и иметь только в файле .go то, что показано в коде, и он выдал следующую ошибку:
gomobile: C:\Users\[User name]\go\bin\gobind.exe -lang=go,java -outdir=C:\Users\[User name\AppData\Local\Temp\gomobile-work-847973191 . failed: exit status 1
no exported names in the package "."
no exported names in the package "."
no exported names in the package "."
no exported names in the package "."
А у меня нет "." в файле, так что я мог бы подумать "." Имеется в виду какой-то пакет, но я понятия не имею, поскольку импортируется только 4, а не 7.
И только сейчас я удалил все в файле, кроме первой строки, говорящей package random
, и это выдает ту же ошибку, что и выше. Любая помощь с этим? (Если мне нужно предоставить больше информации, скажите мне) Я не могу понять, что вызывает это, поскольку единственные примеры, которые я видел в Интернете, были связаны с относительным импортом в файл. Есть ли у меня GOPATH неправильно? У меня это по умолчанию значение %USERNAME%/go
. И это был исполняемый файл. Я попытался преобразовать его в библиотеку, изменив пакет на случайный. Я не знаю, имеет ли это какое-либо отношение к этому, или даже если мне нужно что-то изменить, чтобы использовать его в качестве библиотеки.
РЕДАКТИРОВАТЬ 3 (слишком много, но я пытаюсь дать как можно больше информации):
Я пытался по частям удалить код, пока первая ошибка не сменилась на другую, и единственный оставшийся код в программе был таким:
package thing
func ExternalIP()
С этим кодом все равно выдает первую ошибку. Если я пытаюсь удалить первую строку, возникает ошибка ожидания пакета. Но если я попытаюсь изменить имя этой функции, даже изменить E на e, это даст третью ошибку. Я не знаю, что это имя функции имеет особенное, но я не могу найти имя "ExternalIP" в любом файле на моем компьютере, поэтому я не знаю, как это связано с нелокальным импортом или чем-то еще как это.
Если это помогает, программа, которую я пытаюсь установить в Android Studio, выглядит следующим образом: https://github.com/mondul/PS3-Proxy/blob/master/ps3-proxy.go (это не мое, и я намерен дать МНОГО кредитов тому, кто это сделал, если я когда-нибудь смогу понять, как преобразовать его в файл .aar, а затем использовать в Android Studio).
РЕДАКТИРОВАТЬ 4:
Я попытался выполнить эту команду с файлом ps3-proxy.go (файл, который я хочу преобразовать) внутри папки GOPATH / src /, и он выдал другую ошибку:
gomobile: go build -buildmode=c-shared -o=C:\Users\[User Name]\AppData\Local\Temp\gomobile-work-722000459\android\src\main\jniLibs\armeabi-v7a\libgojni.so gobind failed: exit status 2
# runtime/cgo
clang.exe: error: unknown argument: '-fno-addrsig'
Я не знаю, что это значит, потому что я даже не могу найти что-то об этой конкретной ошибке с clang.exe в Google, поэтому я не знаю, «решил» ли я главную проблему, но создал другую, или если Я не должен был помещать файл туда, и затем я возвращаюсь к основной проблеме (даже если я сделал это правильно, у меня есть другая проблема, с которой я тоже ничего не могу найти ...).
РЕДАКТИРОВАТЬ 5 (круто, еще 5 ...):
Я пробовал другой код и делал то же самое в других тестах, у меня были те же ошибки, что и в исходной программе, так что, вероятно, это не связано с программой ... Удивительно, но теперь я понятия не имею, что делать. Код следующий, на всякий случай он может быть полезен:
package random
import (
"math/rand"
"time"
)
func SudoRandomNumer() int {
return rand.Intn(time.Now().Second())
}
Это ошибка? Я думаю, что я установил все как положено (ну, или, возможно, нет, иначе этого не произойдет). И я попытался удалить и установить снова около 3 раз. И это все еще не работает. Тот код, который я взял с веб-сайта, который я нашел, с примерами того, как сделать то, что я хотел сделать: http://www.codingvelocity.com/2015/08/08/go-bind-intro.html.