最近在看《Android编程权威指南》,在Windows10下安装了Android Studio3.3,边看编练习书中的例子程序,看到第21章“”音频播放与单元测试”中的21.12 深入学习:Espresso 与整合测试时,发现一个问题:ActivityTestRule这个类无法识别,如下图所示:

ActivityTestRule

把鼠标定位到ActivityTestRule类所在位置,出现Cannot resolve symbol ‘ActivityTestRule’的错误,查阅Android开发文档,

发现需要导入android.support.test.rule.ActivityTestRule

import android.support.tst.rule.ActivityTestRule;

但是导入了之后还是出现Cannot resolve symbol ‘ActivityTestRule’的错误,于是求助于Google,最后发现要使用ActivityTestRule类光导入android.support.test.rule.ActivityTestRule不行,还得添加库依赖项:

添加依赖项有两种方式:

方法一、在项目app所在目录下的build.gradle中添加如下的依赖:

androidTestImplementation 'com.android.support.test:rules:1.0.2'

方法二、:

在Android视图的app项中,选中app,单击鼠标右键,选中“Open Module Settings”,打开【Project Structure】对话框,在app项找到右侧的Dependencies,如下图所示:

选中最右上方的“+”号,添加新的“Library Dependency”,

在文本框中输入rules搜索,如下图所示:

单击OK按钮后,com.android.support.test:rules:1.0.2就导入成功了,

从上图可以看出,rules 1.0.2库默认Scope是Implementation的,如果需要进行测试如Unit Test或者是InstrumentedTest时,则需要修改对应的Scope选项,改成Test Implementation(针对整合测试)或者Unit Test Implementation(针对单元测试),其所在文件app/build.gradle也会相应的修改,如下图所示:

dependencies {
    implementation fileTree(inclu: ['*.jar'], dir: 'libs')
    implementation 'com.adroid.support:appcompat-v7:28.0.0'

    im最后,ActivityTestRule终于可以使用了,如下图所示:

参考了两个资源:

1、Cannot resolve symbol ‘ActivityTestRule’ - SOLVED

2、Why cannot I import AndroidJUnit4 and ActivityTestRule into my unit test class?

Android Studio3.3中Cannot resolve symbol ActivityTestRule的更多相关文章

  1. 【Android TimeCat】 解决cannot resolve symbol R

    莫名其妙出现了,鬼知道怎么来的. 解决方法总结 1. 推荐 解决90%的情况: Build->Clean ProjectBuild->Rebuild Project 2. 不常见 Andr ...

  2. Android Studio3.0中dependencies依赖由compile变为implementation的区别

    前言 Android Studio版本更新至3.0了,更新后,连带着com.android.tools.build:gradle 工具也升级到了3.0.0,在3.0.0中使用了最新的Gralde 4. ...

  3. idea-----idea中“cannot resolve symbol servlet”的解决

    原文章链接: 传送器>>>>>>>>>>>>>>>>. 第一次使用IntelliJ IDEA时我遇到了& ...

  4. 【Android Studio安装部署系列】三十七、从Android Studio3.2升级到Android Studio3.4【以及创建Android Q模拟器】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 保持Android Studio开发环境的最新版本. 下载Android Studio3.4 使用Android Studio自带的 ...

  5. Android Studio3.x新的依赖方式(implementation、api、compileOnly)

    https://blog.csdn.net/yuzhiqiang_1993/article/details/78366985?locationNum=6&fps=1 Android Studi ...

  6. Android Studio --“Cannot resolve symbol” 解决办法

    鼠标放上去后显示 “Cannot resolve symbol XXX”,重启 Android Studio,重新 sync gradle,Clean build 都没有用. 多半是因为 Androi ...

  7. 【转】 Android Studio --“Cannot resolve symbol” 解决办法

    Android Studio 无法识别同一个 package 里的其他类,将其显示为红色,但是 compile 没有问题.鼠标放上去后显示 “Cannot resolve symbol XXX”,重启 ...

  8. Android Studio "cannot resolve symbol R" 问题

    初接触Android Studio,又遇到了 "cannot resolve symbol R"问题(以前在 Eclipse 也遇到过),网上方法不一,后来在stackoverfl ...

  9. 【转】在Android Studio中下载Android SDK的两种方式(Android Studio3.0、windows)

    在Android Studio中下载Android SDK的两种方式(Android Studio3.0.windows) 方式一.设置HTTP Proxy1. 打开Settings2. 点击HTTP ...

随机推荐

  1. python 装饰器 第八步:使用类来作为装饰器参数

    #第八步:使用类作为装饰器参数 #装饰器使用的操作类 class Wish: #祈求方法 def before(): print('饭前洗洗手') #还愿方法 def after(): print(' ...

  2. tfsenflow队列|tf.train.slice_input_producer|tf.train.Coordinator|tf.train.start_queue_runners

      #### ''' tf.train.slice_input_producer :定义样本放入文件名队列的方式[迭代次数,是否乱序],但此时文件名队列还没有真正写入数据 slice_input_pr ...

  3. es6 Promise.reject()方法

    es6 Promise.reject()方法:https://blog.csdn.net/ixygj197875/article/details/79188195

  4. go 发送http请求

    普通的get请求 package main import ( "io/ioutil" "fmt" "net/http" ) func mai ...

  5. 【摘】Linux虚拟地址空间布局以及进程栈和线程栈总结

    在CSDN上看到的一篇文章,讲的还是满好的. 原文地址:Linux虚拟地址空间布局以及进程栈和线程栈总结 一:Linux虚拟地址空间布局 (转自:Linux虚拟地址空间布局) 在多任务操作系统中,每个 ...

  6. /var/lib/dpkg/lock

    记性不好: Could not get lock /var/lib/dpkg/lock 锁定的文件会阻止 Linux 系统中某些文件或者数据的访问,这个概念也存在于 Windows 或者其他的操作系统 ...

  7. python socket的长连接和短连接

    前言 socket中意为插座,属于进程间通信的一种方式.socket库隐藏了底层,让我们更好的专注于逻辑.如果短连接和长连接两概率没搞明白,会被坑的爬不起来. 短连接 一次完整的传输过程,发送方输出流 ...

  8. 前端学习(二十二)css3(笔记)

    html5        普通:        header section footer nav article aside figure 特殊:        canvas video audio ...

  9. 深度学习练手项目——DNN识别手写数字

    该案例主要目的是为了熟悉Keras基本用法,以及了解DNN基本流程. 示例代码: import numpy as np import matplotlib.pyplot as plt from ker ...

  10. mitmproxy 代理介绍及入门

    转载请注明出处 https://www.cnblogs.com/majianming/p/11823669.html mitmproxy 是一个python 写成的代理工具,可以代理https.htt ...