私の Eclipse Android アプリケーションは、android-sdk\platforms\android-16 の android.jar でビルドされており、ブレークポイントでコール スタックの次のコードを確認したいと考えています。
ViewRoot.draw(boolean) line: 1522
android-sdk\sources\android-16 に android-16 のソースがあります。ただし、ViewRoot.java はありません。最も近いのは、android-sdk\sources\android-16\android\view の ViewRootImpl.java です。draw(boolean) 関数はありますが、2050 行目以降です。1522行目は全く別の機能です。
私の質問は、なぜファイル名と行番号が一致しないのですか?
私のマニフェストには targetSdkVersion="15" がありますが、違いはありません。ソースフォルダーで ViewRoot.java を検索しましたが、 ViewRootImpl.java と ViewRootImpl_Delegate.java (それが何であれ)しか見つかりません。
編集:完全なコールスタックを追加
Spine [Android Application]
DalvikVM[localhost:8613]
Thread [<1> main] (Suspended (breakpoint at line 670 in ChartView))
<VM does not provide monitor information>
ChartView.onDraw(Canvas) line: 670
ChartView(View).draw(Canvas) line: 6880
NineFrameLayout(ViewGroup).drawChild(Canvas, View, long) line: 1646
NineFrameLayout(ViewGroup).dispatchDraw(Canvas) line: 1373
LinearLayout(ViewGroup).drawChild(Canvas, View, long) line: 1644
LinearLayout(ViewGroup).dispatchDraw(Canvas) line: 1373
FrameLayout(ViewGroup).drawChild(Canvas, View, long) line: 1644
FrameLayout(ViewGroup).dispatchDraw(Canvas) line: 1373
PhoneWindow$DecorView(ViewGroup).drawChild(Canvas, View, long) line: 1644
PhoneWindow$DecorView(ViewGroup).dispatchDraw(Canvas) line: 1373
PhoneWindow$DecorView(View).draw(Canvas) line: 6883
PhoneWindow$DecorView(FrameLayout).draw(Canvas) line: 357
PhoneWindow$DecorView.draw(Canvas) line: 1862
ViewRoot.draw(boolean) line: 1522
ViewRoot.performTraversals() line: 1258
ViewRoot.handleMessage(Message) line: 1859
ViewRoot(Handler).dispatchMessage(Message) line: 99
Looper.loop() line: 123
ActivityThread.main(String[]) line: 3683
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 507
ZygoteInit$MethodAndArgsCaller.run() line: 839
ZygoteInit.main(String[]) line: 597
NativeStart.main(String[]) line: not available [native method]
Thread [<8> Binder Thread #2] (Running)
Thread [<7> Binder Thread #1] (Running)
Thread [<10> Binder Thread #3] (Running)
Thread [<11> Binder Thread #4] (Running)
私が興味を持っているのは、ViewRoot.draw で何が起こっているかです。なぜなら、Gingerbread を実行している電話 (私の場合は AVD -私はそのハードウェアを所有していません)。SherlockActionBar を使用するように UI をアップグレードしたためですが、問題のコードは Android からインポートされたものであり、Sherlock ライブラリではありません。しかし、私の質問は残っています - Android-16 ソースに ViewRoot.java が見つからないのはなぜですか?