92

API レベル 21 に対してコンパイルしているアプリがあります。 ここに画像の説明を入力

次に、API レベル 23 の実際のデバイスでデバッグします。

ここに画像の説明を入力

問題は、Android OS 独自のクラスを使用してデバッグしようとすると、「ソース コードがバイトコードと一致しません」というメッセージが表示されることです。なぜこうなった?アプリが実行されているテスト デバイスは API レベル 23 であり、デバッグ中のソース ファイルもレベル 23 です。 *ここに画像の説明を入力してください*

私は本当に混乱しています。このメッセージが表示される理由と修正方法を説明できる人はいますか?

4

18 に答える 18

48

Google の IssueTracker には、これに関する未解決の問題があります。

問題に示されている潜在的な解決策 (この投稿の日付現在) は次のとおりです。

  • [ビルド] -> [クリーン] をクリックします。
  • [設定] -> [ビルド、実行、デプロイ] で Instant Run を無効にする
于 2016-11-12T18:53:05.763 に答える
18

compileSdkVersion と同じ API レベルの Android エミュレーターを使用する必要があります。あなたの場合、API レベル 21 の Android エミュレーターを使用する必要があります。

于 2018-01-09T19:55:06.350 に答える
0

「ソースコードがバイトコードと一致しません」というエラーが発生した理由は次のとおりです。私の原因は、API、コンパイラのバージョンとは何の関係もありません.....他の場所で誤ってインフレータを開始しているときに、レイアウトビューをルートビューにインフレートしたときに発生します(「結果ハンドラー」のチャック) Android アプリコードの onCreate 関数の上に置くコード)。どういうわけか、ブレークポイントが設定されてここで停止すると、デバッガーはこれについての正しいヒントを教えてくれません (例: インフレータが初期化されていない、またはインスタンスを持っている)。

于 2021-07-20T03:10:27.047 に答える
0

[プロジェクト設定] > [アーティファクト] に移動します。問題のあるアーティファクトを選択します。「プロジェクトビルドに含める」オプションがあります。これはチェック(有効)する必要があります。古いバージョンの IntelliJ の場合、このオプションは「ビルド時に作成」です。

于 2017-06-29T14:55:38.477 に答える