APIレベル21に対してコンパイルしているアプリがあります:
aPIレベル23の実際のデバイスでデバッグします。
問題は、Android OS自体のクラスを介してデバッグしようとすると、「ソースコードがバイトコードと一致しません」というメッセージが表示されることです。なんでこんなことが起こっているの?アプリが実行されているテストデバイスはAPIレベル23であり、デバッグされるソースファイルもレベル23です。
私は本当に混乱しています。このメッセージが表示される理由と修正方法を説明できる人はいますか?
AOSPにはこれに関する未解決の問題があり、一部のユーザーは可能な解決策を提供しています: https://code.google.com/p/Android/issues/detail?id=225199&sort=-id&colspec=ID%20Type% 20Status%20Owner%20Summary%20Stars
そこに与えられた潜在的な解決策は(この投稿の日付の時点で)です:
CompileSdkVersionと同じAPIレベルのAndroidエミュレーターを使用する必要があります。あなたの場合、APIレベル21のAndroidエミュレータを使用する必要があります。
Bluetooth Low Energy(BLE)を使用したアプリケーションで作業中に、ここで示したソリューションを試しました。私は試した、
これらはすべて失敗しました。
私がやったことは、警告を受けていると思ったポイントをデバッグすることでしたが、まだ警告は出ましたが、アプリケーションは正常に動作していました。警告は無視できます。
おそらく、このエラーメッセージには複数の原因が考えられます。私の場合はOPの場合とは異なります。私の場合、これは追加のライブラリを必要とするサードパーティのライブラリが原因でした。
たとえば、X.jarを手動でLIBに追加しますが、このX.jarを機能させるにはZ.jarが必要です。
理解するのに時間がかかりましたが、メッセージはまったく役に立ちませんでした。クラッシュするクラスに到達するまでアプリをデバッグする必要がありました。そのクラスでは、すべてのインポートが満たされていることを確認してください。
(特定:MercadoLibre-0.3.4.jarを追加しました。これにはcommons-httpclient.jarが必要でした)
お役に立てれば!
これは、ProGuardを有効にしている場合にも発生する可能性があります。 buildTypesで、minifyEnabled false、shrinkResources false、useProguard falseを設定します
[プロジェクトの設定]> [アーティファクト]に移動します。問題のあるアーティファクトを選択します。 「プロジェクトビルドに含める」オプションがあります。これをチェックする(有効にする)必要があります。 IntelliJの古いバージョンでは、このオプションは「ビルド時に作成」です。