5
我將我的Go源代碼交叉編譯爲Arm以在Android中運行。該程序在Android設備的終端中運行,但出現錯誤消息說明/ etc/resolv。 conf缺失。我的程序嚴重依賴net/http庫進行http調用。在android中缺少/etc/resolv.conf
如何在Android中處理此錯誤?
我將我的Go源代碼交叉編譯爲Arm以在Android中運行。該程序在Android設備的終端中運行,但出現錯誤消息說明/ etc/resolv。 conf缺失。我的程序嚴重依賴net/http庫進行http調用。在android中缺少/etc/resolv.conf
如何在Android中處理此錯誤?
截至目前,您無法使用內置的net/http連接主機名,請檢查此issue。
您可以使用的解決方法很少。
在程序啓動時生成/etc/resolv.conf,如果您具有root訪問權限,但很難但很容易和簡單。
將resolv.conf存儲在某處並使用修補程序http://golang.org/src/pkg/net/dnsclient_unix.go#L169來使用該自定義路徑。
patch $GOROOT/src/pkg/net/dnsconfig_unix.go
通過執行getprop net.dns1
和getprop net.dns2
來獲取名稱服務器。
全部補丁代替生成的/etc/resolv.conf不能我模擬它在另一個位置的??? – 2014-09-11 14:24:03
@ShenalSilva我補充說,但你必須修補dnsclient_unix來設置路徑。 – OneOfOne 2014-09-11 14:28:26