2015-11-19 59 views
1

以前有人使用過Gomobile應用程序,並且在手機中成功創建了文件嗎?我在Android 4.4.2的Galaxy S4上試過以下代碼:Golang:Gomobile應用程序無法生成文件

package main 
import (
    "golang.org/x/mobile/app" 
    "golang.org/x/mobile/event/lifecycle" 
    "golang.org/x/mobile/event/paint" 
    "os" 
) 
func main() { 
    os.Create("zzz.txt") 
    app.Main(func(a app.App) { 
     for e := range a.Events() { 
      switch e := a.Filter(e).(type) { 
      case lifecycle.Event: 
       _=e 
      case paint.Event: 
       a.Publish() 
      } 
     } 
    }) 
} 

但是在手機中沒有創建文件。

我也嘗試過所謂的「AnGoIde」,讓我們來寫去,直接在Android中編譯應用程序,下面的代碼是能夠創建「zzz.txt」文件:

package main 
import "os" 
func main(){ 
    os.Create("zzz.txt") 
} 

最後我想要將所有錯誤保存在文件中,以便我可以查看導致我的應用程序崩潰的原因,並且AnGoIde不支持許多軟件包,因此我無法將其用於測試。有沒有人成功地使用gomobile應用生成文件?

p.s.我試圖指定目錄爲「/ storage/emulated/0/Go /」,這是我存儲apk文件的相同地方,但不起作用。

回答

2

要寫入文件,您的應用需要某種形式的許可。如果您還沒有創建AndroidManifest.xml。您可以使用-v標誌自動爲您創建文件gomobile的內容。 (gomobile build -v

<manifest></manifest>標記之間添加以下行標記。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

重新構建應用程序。確保gomobile正在使用您的清單文件,使用-v標誌。我能夠通過os.Create("/sdcard/zzz.txt")創建文件。我也需要這個進行調試,所以我不介意寫一個特定的位置,即我的SD卡。 當然,在您的手機中,位置可能會發生變化。

此外,如果您只是想要一些日誌,您可以安裝Android Debug Bridge並使用adb logcat。從你的Go應用程序adb logcat | grep "I/GoLog"中篩選出日誌會起作用。

+0

謝謝你的作品! – Kyle

+0

有些人正在尋找解決方案的意見: – Kyle

+0

http://stackoverflow.com/questions/3593420/is-there-a-way-to-get-the-source-code-from-an-apk-file – Kyle

相關問題