throw new RuntimeException(“Stub!”)ってなに?

先日Intentってなんやねんの記事を書いたときIntentのソースコードを見ようとしたらすべてのメソッドの中身が

throw new RuntimeException("Stub!");

になっていたんですね。
※Ctrl+該当クラス名クリックでクラスの中身が見れます!

ファイル名もIntent.classになってるし。(本来はIntent.java)

結局仕方がないのでandroidのソースを検索するサイト(※リンク先はAndroid9.0)で中身の確認を行ったのですがどうやら設定を触ると見れるようになるようで...

SDKマネージャを開いて

Editをクリック!

そのあとはひたすらNextで完了です。

...のはずだったのですがなんも変わってないやん!!

どうやらSDKのAPIレベルが最新の場合ソースコードがそもそも公開されていない(Packageに含まれていない)らしいです。

その場合

build.gradle(Module:app)のcompileSdkVersionとtargetSdkVersionをSourceが含まれているバージョンまで落としてsyncしてあげてください。

以降はクラスにアクセス時Intent.javaのように元ファイルにアクセスできますのでソースコードの確認が捗ります!!

一旦該当SDK削除してAttach Sourcesなる設定からソースのpathだけ変えて閲覧することもできたのですが、以降戻す方法が見つからなかったので多分上の一時的にダウングレードして閲覧する方法が無難かな~と思います。

 

てちこま

高卒後3年ニート。 起死回生でコン専入学。 資格とったり、アプリ作ったりしてました。 2020から新米WEBエンジニアになりました。

シェアする

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

コメントする