EclipseからAndroid Studioに切り替えたところ、この奇妙な動作が見つかりました。メソッドの最初の行にブレークポイントを追加すると、パラメーター値が表示されません。表示されるのは1つだけです。次に、this
参照です。パラメータ値を表示するには、1つのデバッグステップを実行するか、ブレークポイントを最初のステップの後の行に設定する必要があります。
他の誰かがこの問題を抱えているか、ここで何が問題になっているのか知っていますか?
Googleが提供するソリューション ここ はAndroid StudioGradleプラグインをv1.0.1にアップグレードすることです
Build.gradleファイルのデバッグビルドのjacocoテストカバレッジをオフにしてみてください。
debug {
...
testCoverageEnabled false
}
これにより、gradleプラグインをアップグレードしなかった問題が完全に修正されました。
AOSP Issue#123771 が解決されるまでの良い解決策は、コメントセクションで Stuart によって提供されるスニペットを使用することです。
buildTypes {
debug {
[...]
testCoverageEnabled true
}
release {
[...]
}
debuggable.initWith(buildTypes.debug)
debuggable {
testCoverageEnabled false
}
}
このようにして、テストカバレッジレポートをデバッグビルドに保持し、コードをステップスルーしてローカル変数を確認することができます。
Gradleファイルにありません:
debug {
...
testCoverageEnabled true
}
しかしAndroid Studio 2.2で同じ問題が発生しました。問題の解決に役立つ解決策:
デバッグしたいときにtestCoverageEnabled
を切り替えるのにうんざりしたので、プロジェクトプロパティを設定して、Android Studioから実行すると無効になりますが、コマンドラインから実行するとデフォルトで有効になります。ビルドボックスなどのオプションはありません。
// Default to true, set -PtestCoverageEnabled=false in IDE compiler command-line options
def isTestCoverageEnabled = { ->
def enabled = project.hasProperty('testCoverageEnabled') ? testCoverageEnabled.toBoolean() : true
println "testCoverageEnabled = " + (enabled ? "true" : "false")
return enabled
}
Android {
buildTypes {
debug {
testCoverageEnabled isTestCoverageEnabled()
}
}
}
IDEにプロパティを設定するには、コマンドラインオプションを追加します-PtestCoverageEnabled=false
AndroidStudio->設定->ビルド、実行、デプロイ->コンパイラ->コマンドラインオプション
ビルドで ジャックツールチェーン を使用している場合、これが問題の原因である可能性があります。私の場合、ジャックを無効にすると問題が解決します。
buildTypes {
...
debug {
jackOptions {
enabled false
}
}
}
注:1.8ソースの互換性にはジャックが必要です!
以下の構成は、buildTypeリリースで機能しました。
buildTypes {
リリース{
testCoverageEnabled = false
デバッグ可能true
minifyEnabled false
シュリンクリソースfalse
}
Android Studio自体からではなく、APKを使用して以前にインストールされたアプリをデバッグしようとしたときに、この問題が発生しました。アプリをアンインストールしてデバッグを再実行することで修正しました。