Samsung Infuse 4g 電話を使用して Android アプリケーションをデバッグしようとしています。電話機で USB デバッグが有効になっています。マニフェスト debuggable = true; に追加しました。Logcat は、デバッガーが解決したことを示しています (1325)。しかし、コードを実行すると、ブレークポイントで停止せず、変数ウィンドウに変数が表示されません。ここで何がうまくいかないのですか?これは logcat の出力です。
04-03 00:55:47.210: I/System.out(8726): Sending WAIT chunk
04-03 00:55:47.218: I/dalvikvm(8726): Debugger is active
04-03 00:55:47.415: I/System.out(8726): Debugger has connected
04-03 00:55:47.415: I/System.out(8726): waiting for debugger to settle...
04-03 00:55:47.613: I/System.out(8726): waiting for debugger to settle...
04-03 00:55:47.819: I/System.out(8726): waiting for debugger to settle...
04-03 00:55:48.023: I/System.out(8726): waiting for debugger to settle...
04-03 00:55:48.234: I/System.out(8726): waiting for debugger to settle...
04-03 00:55:48.433: I/System.out(8726): waiting for debugger to settle...
04-03 00:55:48.636: I/System.out(8726): waiting for debugger to settle...
04-03 00:55:48.839: I/System.out(8726): waiting for debugger to settle...
04-03 00:55:49.042: I/System.out(8726): waiting for debugger to settle...
04-03 00:55:49.249: I/System.out(8726): debugger has settled (1325)
デバッガーが何かを実行していることを確認できるのは、意図的にプログラムをクラッシュさせたときだけです。次に、Double.ParseDouble(String) の例外が表示されますが、そのソース コードがありません...エミュレーターを試しても同じ問題が発生し、プログラムがクラッシュするまでデバッグは行われません。
package com.example.calculator;
public class Math {
double mathValue;
double totalValue;
int lastOperator;
public double getTotalValue(){
if (this.totalValue == 0)
return this.mathValue;
else
return this.totalValue;
}
public void add(){
}
public void setOperater(String nextOperater){
if (nextOperater == "+")
this.lastOperator = 1;
if (nextOperater == "-")
this.lastOperator = 2;
if (nextOperater == "*")
this.lastOperator = 3;
if (nextOperater == "/")
this.lastOperator = 4;
if (nextOperater == "")
this.mathValue = 0;
}
public void doMath(double inValue){
this.mathValue = inValue;
switch (lastOperator){
case 1 : Add();
break;
case 2 : Subtract();
break;
case 3 : Multiply();
break;
case 4: Divide();
break;
}
}
public void Add(){
System.out.println("The line before my breakpoint");
totalValue += mathValue; <---- break point
System.out.println("The line after my breakpoint");
}
public void Subtract(){
totalValue -= mathValue;
}
public void Multiply(){
totalValue *= mathValue;
}
public void Divide(){
if (mathValue == 0)
totalValue = 0;
else
totalValue /= mathValue;
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.calculator"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:debuggable="true">
<activity
android:name="com.example.calculator.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>