文档章节

Android Studio 设置显示sdk源码

yoyoso
 yoyoso
发布于 2018/07/23 10:40
字数 834
阅读 173
收藏 1

想看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/ ,这是朋友做的一个小说网站

© 著作权归作者所有

共有 人打赏支持
yoyoso
粉丝 49
博文 129
码字总数 45109
作品 0
南京
高级程序员
私信 提问
关于Android Studio 和 Gradle的那些事儿

本文为作者原创,转载请注明出处,否则将依法追究版权 在进入正题之前,先拉个家常,本周进了一个很nice的校园开发团队,欣赏我们的Leader TutorChen,让项目开发变得有趣,乐于分享,并且耐...

刘小米_思聪
2014/12/07
0
5
android studio中使用为什么ctrl+shift+T 搜不到activity源码

android studio中已经设置了Eclipse快捷键,但是使用为什么ctrl+shift+T还是搜不到activity源码,只能搜到project中的源码。 请问如何能在android studio中搜到sdk中的源码,谢谢!...

zhitang
2016/06/18
324
1
安卓APP广告前端SDK及管理后台

【业务需求】 开发项目预算为2000元 1、管理后台能设置广告显示位置,广告列表(投送排序或优先级,开关设置),广告类型(push推送、弹窗、banner横幅、快捷方式等),定向投放功能(按照省份...

zb1505787388050
2017/09/21
1
1
Android Studio-1.2版本设置教程

这两天Google更新了Android Studio 1.2正式版,新版本的设置界面大变面,设置条目较旧版本进行了归类,不像以前那样列表长长的了。 趁着安装新版本的机会,把常用的设置记录一下,放到博客里...

____追梦人
2015/06/23
0
0
图文详解Android Studio搭建Android集成开发环境的过程

有很长一段时间没有更新博客了,最近实在是太忙了,没有时间去总结,现在终于可以有时间去总结一些Android上面的东西了,很久以前写过这篇关于使用Android Studio搭建Android集成开发环境,不...

查杰
2018/06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

第11章 多线程

程序、进程、线程 程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。 **进程(process)**是程序的一次执行过程或是正在运行的一个程序。动...

流小文
37分钟前
4
0
SpringBoot引入第三方jar包或本地jar包的处理方式

在开发过程中有时会用到maven仓库里没有的jar包或者本地的jar包,这时没办法通过pom直接引入,那么该怎么解决呢 一般有两种方法 - 第一种是将本地jar包安装在本地maven库 - 第二种是将本地j...

独钓渔
今天
2
0
五、MyBatis缓存

一、MyBatis缓存介绍 缓存的使用可以明显的加快访问数据速度,提升程序处理性能,生活和工作中,使用缓存的地方很多。在开发过程中,从前端-->后端-->数据库等都涉及到缓存。MyBatis作为数据...

yangjianzhou
今天
2
0
最近研究如何加速UI界面开发,有点感觉了

最近在开发JFinal学院的JBolt开发平台,后端没啥说的,做各种极简使用的封装,开发者上手直接使用。 JBolt开发平台包含常用的用户、角色、权限、字典、全局配置、缓存、增删改查完整模块、电...

山东-小木
今天
3
0
《月亮与六便士》的读后感作文3000字

《月亮与六便士》的读后感作文3000字: 看完英国作家威廉.萨默塞特.毛姆所著《月亮与六便士》(李继宏译),第一疑问就是全书即没提到“月亮”,也没提到“六便士”。那这书名又与内容有什么...

原创小博客
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部