QA@IT

【AndroidStudio】デバッグ中に文字列の値を変更し、文字列比較でtrueにしたい

4865 PV

Android Studioのデバッグ方法について窮しています。
ご助言の程よろしくお願いいたします。

【質問】

AndroidStudioにて
デバッグ中に文字列の値を変更する方法は
以下の手順で正しいでしょうか?

DebugビューのVariables一覧にある変数で
右クリック > [Set Value...] > "変更したい文字列" を入力

【質問するに至った経緯】

以下のような分岐処理で
分岐の判定に用いる文字列の中身をデバッグツールで変更し、
★の場所に行きたいのですが行けません。

class A {
    public static final String DEFINE_A = "A";
    ...
}

class B extends A {
    public void method(){
        String str = "B";
         ...
        // 以下のコードに来る前にブレークポイントをはり
        // DebugビューのVariables一覧にある str に対して
        // 『右クリック>Set Value...』で ”A” を設定
        if(DEFINE_A.equals(str)){
            // ★
            // ここ来て欲しいが来ない(equals()がfalseになる)
        }
    }
}

自分なりに調査をしてみたのですが解決できません。
御手数ですがご指摘の程よろしくお願いいたします。

【追記】

本日、問題を再現しようとしたところifの中に入れました…
ちなみに昨日まで発生していた事柄を以下に記載します。

Set Valuesで変更後、変数の横に緑字でstr: "A"とは出るのですが
String.equals()内の比較の際に
this(DEFINE_A).valueには"UTF-8"、
str.valueには"p...(中身を見ようとしたらAndroidStudioが落ちてしまいました…)"などと
其々に設定した覚えの無い値が入っており「異なるもの」と判定されているようでした。

また同様の問題が発生した場合、当記事にてご報告したいと思います…

開発環境

Android Studio 1.4

  • Android Studio 1.4, Windows, JDK7でEmptyプロジェクトにそのコードを追加して、API 23 エミュレータで実行 右クリック>Set Valueで試してみましたが、変更できてifの中に入れますね。
    変更した後(評価完了後)`String str = "B";`の右側が`str: "B"`から`str: "A"`になってから続行してますか?それも変わりませんか
    -
  • > flied_onion さん
    試行・コメント頂きありがとうございます。
    本日、問題を再現しようとしたところifの中に入れました…
    お手数をおかけしたにも関わらずこのような結果で申し訳ございません。
    # 今まで環境の再起動を何度しても駄目だったのに不思議です…

    ちなみに昨日まで調査していた際に発生していた事柄を記事に追記します。
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。