0

Androidのマニフェストからパッケージバージョンを解決する必要があります。私はメインの活動でそれをまっすぐに行います、それが間違っているかどうかはわかりません。

これが機能するかどうかをテストすることはできません。さまざまな理由で、Eclipseを実行しているにもかかわらず、数日で実行できなくなりますが、私はかなり心配しているので、これは本当に私の心を傷つけます。

{ try {
    String version = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
} catch (NameNotFoundException e) {
    Log.e("tag", e.getMessage());
} }

WHOLEステートメントの前後の中括弧に気づきましたか?それらを削除すると、Eclipseは次のように言います

"トークン"{"、{このトークンの後に予期される構文エラー"

前のアクティビティの開始、およびその後のメソッドまたはステートメントの同様のもの。

それが私にできることであるため、私はそれをグーグルで検索しましたが、それらが必要とされていることについては何も見つかりませんでした。Javaチュートリアル、サンプルスペルは、これなしでキャッチを試みます。私は非常に愚かなことをしていますか、それとも正常な動作であり、戻ったときにコード実行する必要がありますか?

もう一度この質問を申し訳ありませんが、私はただ必要でした。

前もって感謝します。

4

2 に答える 2

3

おそらく、そのコードはどのメソッドの外にもあります。中括弧を使用すると、Javaはそれをインスタンス初期化ブロックとして扱います。中かっこがないと違法です。

そのコードのもう1つの問題は、変数を初期化すると、ブロックに対してローカルであるversionため、すぐに情報が失われることです。変数はおそらくブロックの外で宣言する必要があります。versiontry

于 2012-09-25T20:08:23.420 に答える
2

このtryブロックはclass {コードの中にあると思います。

その場合、Javaではインスタンス初期化ブロックとして扱われるため、これらが必要です。

EDIT:

質問にさらに情報が追加された後、はい、これは初期化ブロックではなく、メソッド内にラップする必要があります。

于 2012-09-25T20:08:09.943 に答える