Android Studio 设置显示sdk源码

原创
2018/07/23 10:40
阅读数 2.7K

想看TextUtils isEmpty的源码,结果出现的源码没有实际内容,只有一个抛出异常:RuntimeException("stub!!”) 这是为什么呢? 小创作 - Android单元测试(七):Robolectric,在JVM上调用安卓的类

解释: 我们知道安卓的app需要运行在delvik上面,我们开发Android app是在JVM上面,在开发之前我们需要下载各个API-level的SDK的,下载的每个SDK都有一个android.jar的包,这些可以在你的androidsdkhome/platforms/下面看到。当我们开发一个项目的时候,我们需要指定一个API-level,其实就是将对应的android.jar 加到这个项目的build path里面去。这样我们的项目就可以编译打包了。然而现在的问题是,我们的代码必须运行在emulator或者是device上面,说白了,就是我们的IDE和SDK只提供了开发和编译一个项目的环境,并没有提供运行这个项目的环境,原因是因为android.jar里面的class实现是不完整的,它们只是一些stub,如果你打开android.jar下面的代码去看看,你会发现所有的方法都只有一行实现: throw RuntimeException("stub!!"); 而运行unit test,说白了还是个运行的过程,所以如果你的unit test代码里面有android相关的代码的话,那运行的时候将会抛出RuntimeException("stub!!")。为了解决这个问题,现在业界提出了很多不同的程序架构,比如MVP、MVVM等等,这些架构的优势之一,就是将其中一层抽出来,变成pure Java实现,这样做unit testing就不会遇到上面这个问题了,因为其中没有android相关的代码。

java - meaning of RuntimeException("Stub!") in Android This is because source code is not found in SDK. To see the source code, you need to download source for Android SDK, so Android studio can display the respective code.

打开Android SDK Manager 下载你需要的源码(Sources for Android SDK) 下载完成后会在你的SDK 根目录下的source 文件夹。正常这样重启Android Studio 应该就能看到源码了,应该是Android Studio 有问题,所以看不到源码。

怎么打开Android SDK Manager? Tools菜单——Android——SDK Manager 或者Preferences中搜索SDK也能找到 正常情况下是不会显示Sources for Android SDK 的,需要点击右下角的Show Package Details 一般情况下下载了某个Android SDK后对应的Sources源码也会自动下载下来

但是对TextUtils isEmpty在Android Studio中按Cmd+B快捷键显示源码时,仍然显示RuntimeException("stub!!”) 这样的源码,这是因为有之前的记忆存在。怎么修改呢?注意右上角应该有一个类似于Edit xxxx的快捷键,这里可以选择源码,大概是选择Sdk/source下面的android26(因为我的项目是用到了android26 sdk )文件夹就行了,source下面不需要指定android.jar也没有android.jar文件

顺便发一个链接,https://www.kanxs123.com/ ,这是朋友做的一个小说网站

展开阅读全文
打赏
1
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
1
分享
返回顶部
顶部