2014-09-11 198 views
5

我將我的Go源代碼交叉編譯爲Arm以在Android中運行。該程序在Android設備的終端中運行,但出現錯誤消息說明/ etc/resolv。 conf缺失。我的程序嚴重依賴net/http庫進行http調用。在android中缺少/etc/resolv.conf

如何在Android中處理此錯誤?

回答

4

截至目前,您無法使用內置的net/http連接主機名,請檢查此issue

您可以使用的解決方法很少。

  1. 在程序啓動時生成/etc/resolv.conf,如果您具有root訪問權限,但很難但很容易和簡單。

  2. 將resolv.conf存儲在某處並使用修補程序http://golang.org/src/pkg/net/dnsclient_unix.go#L169來使用該自定義路徑。

  3. patch $GOROOT/src/pkg/net/dnsconfig_unix.go通過執行getprop net.dns1getprop net.dns2來獲取名稱服務器。

  4. 實現在https://gist.github.com/ernesto-jimenez/8042366

+0

全部補丁代替生成的/etc/resolv.conf不能我模擬它在另一個位置的??? – 2014-09-11 14:24:03

+0

@ShenalSilva我補充說,但你必須修補dnsclient_unix來設置路徑。 – OneOfOne 2014-09-11 14:28:26