5

AndroidSDKプラットフォームでdexdumpを実行したい-Go言語のツール。

すでにPATH変数を設定しています。(私はUbuntu 12.04を使用しています)

これが私のコードです:

package main

import (
    "bytes"
    "fmt"
    "log"
    "os/exec"
)

func main() {
    path, err := exec.LookPath("dexdump")
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(path)

    cmd := exec.Command(path)
    var out bytes.Buffer
    cmd.Stdout = &out
    err2 := cmd.Run()
    if err2 != nil {
        log.Fatal(err2)
    }
    fmt.Printf("%q\n", out.String())
}

結果:/ home / gunwoo / android-sdk-linux / platform-tools / dexdump

2012/10/1516:44:39終了ステータス2

終了ステータス1

なぜ行くのが道を見つけられないのですか?

4

1 に答える 1

6

コマンドに引数を指定しないと、exec.Run dexdump次のようなエラーが発生する可能性があります。

dexdump: no file specified
dexdump: [-f] [-h] dexfile...

-d : disassemble code sections
-f : display summary information from file header
-h : display file header details
-C : decode (demangle) low-level symbol names
-S : compute sizes only

次のバージョンのプログラムを実行すると、どのような出力が得られますか?

package main

import (
    "bytes"
    "fmt"
    "log"
    "os/exec"
)

func main() {
    path, err := exec.LookPath("dexdump")
    if err != nil {
        log.Fatal("LookPath: ", err)
    }
    fmt.Println(path)
    cmd := exec.Command(path)
    var out bytes.Buffer
    cmd.Stdout = &out
    err = cmd.Run()
    fmt.Printf("%s\n", out.String())
    if err != nil {
        log.Fatal("Run: ", err)
    }
}
于 2012-10-15T08:37:14.550 に答える