当前位置: 首页 > news >正文

使用Android studio进行Unit Test中遇到的问题记录

1、模块本身代码运行不起来

提示:
Cannot resolve method ‘getVolumes’ in ‘StorageManager’
Cannot resolve method ‘registerListener’ in ‘StorageManager’
Cannot resolve method ‘unregisterListener’ in ‘StorageManager’

查看Android 源码,发现getVolumes,registerListener和unregisterListener是被UnsupportedAppUsage修饰,这些注解的函数、类、变量是不编译进谷歌提供的sdk里面的,所以直接使用不能通过编译器检查。

解决方法:

android studio引用的sdk默认为当前android版本的Android API XX Platform的android.jar,而被UnsupportedAppUsage修饰的函数是调用不到的,所以当我们需要调用隐藏的接口或者常量时,去默认的sdk是找不到方法的,直接引用默认sdk的包Android studio就会报错。这个时候可以听过导入系统framework.jar包并更改引用库的优先级的方式来解决这个问题。
实际上就是修改引用的sdk为framework.jar,这样在编译时就会去framework.jar里面去找对应的方法。

修改配置:

//module下的配置
gradle.projectsEvaluated {tasks.withType(JavaCompile).tap {configureEach {Set<File> fileSet = options.bootstrapClasspath.getFiles()List<File> newFileList = new ArrayList<>();//JAVA语法,可连续调用,输入参数建议为相对路径newFileList.add(new File("libs/framework.jar"))//最后将原始参数添加newFileList.addAll(fileSet)options.bootstrapClasspath = files(newFileList.toArray())}}
}

修改示例
修改之后再点击run:
运行
可以成功生成apk
在这里插入图片描述
**注意:**虽然上面运行ok了,但是在代码里调用getVolumes,registerListener和unregisterListener的地方还是标红的,标红问题暂时未解决,只解决了编译问题。
继续标红

相关文章:

使用Android studio进行Unit Test中遇到的问题记录

1、模块本身代码运行不起来 提示&#xff1a; Cannot resolve method ‘getVolumes’ in ‘StorageManager’ Cannot resolve method ‘registerListener’ in ‘StorageManager’ Cannot resolve method ‘unregisterListener’ in ‘StorageManager’ 查看Android 源码&…...

智能运维与问题诊断工具:提升生产环境的安全稳定性

引言 在当今复杂的IT环境中,确保生产系统的安全稳定运行是一项巨大挑战。随着技术的进步,智能运维和问题诊断工具应运而生,为IT团队提供了强大的支持。本文将介绍一系列先进的工具,这些工具利用人工智能、机器学习和自动化技术,帮助组织提高系统可靠性、加速问题解决、优…...

【MAUI】CommunityToolkit社区工具包介绍

一、为什么需要声明式开发 .NET的MVVM,始于WPF,很古典,它甚至可能是现代前端框架“声明式开发”的鼻祖。声明式开发,之所以出现,是因为命令式开发在UI层和代码层上无法解耦的问题。如下图所示: 1、命令式开发:后台代码需要调用UI层的控件(label.Text),如果更新UI层…...

【答疑解惑】图文深入详解undo和redo的区别及其底层逻辑

题记&#xff1a;最近有些人问我&#xff0c;undo和redo到底是什么关系&#xff0c;他们中不乏已经入行3-4年的同学&#xff0c;今天咱们就来深入探讨下到底什么是undo和redo&#xff0c;他们分别做什么&#xff0c;底层逻辑原理是什么等等。 1. undo 1.1 undo的存储结构 Un…...

低通滤波、反相放大器电路

1 简介 这种可调低通滤波、反相放大器电路可将信号电平放大 26dB 或 20V/V。R2 和 C1 会为此电路设置截止频率。此电路的频率响应与无源 RC 滤波器的相同&#xff0c;除非输出按放大器的通带增益进行放大。低通滤波器通常用于音频信号链&#xff0c;此滤波器有时也称为低音增强…...

SpringBoot助力服装生产流程优化

1 绪论 1.1 研究背景 当今时代是飞速发展的信息时代。在各行各业中离不开信息处理&#xff0c;这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制&#xff0c;不仅提高了工作效率&#xff0c;而且大大的提高…...

【机器学习】线性回归算法简介 及 数学实现方法

线性回归 简介 利用 回归方程(函数) 对 一个或多个自变量(特征值)和因变量(目标值)之间 关系进行建模的一种分析方式。 数学公式&#xff1a; ℎ_(w) w_1x_1 w_2x_2 w_3x_3 … b w^Txb 概念 ​ 利用回归方程(函数) 对 一个或多个自变量(特征值)和因变量(目标值)之间 关…...

设计模式的学习

OO:Object-Oriented 面向对象 --- 《Head First设计模式》 这本书是用java写的&#xff0c;我是写C的&#xff0c;用C来写相关的代码 --- p2&#xff08;第二页&#xff09; #ifndef DUCK_H #define DUCK_H/*** brief The Duck class 鸭子类*/ class Duck { public:D…...

wordpress发邮件SMTP服务器配置步骤指南?

wordpress发邮件功能如何优化&#xff1f;怎么用wordpress发信&#xff1f; 由于WordPress默认的邮件发送功能可能不够稳定&#xff0c;配置SMTP服务器成为了许多网站管理员的选择。AokSend将详细介绍如何在WordPress中配置SMTP服务器&#xff0c;以确保邮件能够顺利发送。 w…...

胤娲科技:机械臂「叛逃」记——自由游走,再悄然合体

夜深人静&#xff0c;你正沉浸在梦乡的前奏&#xff0c;突然意识到房间的灯还亮着。此刻的你&#xff0c;是否幻想过有一只无形的手&#xff0c;轻盈地飘过&#xff0c;帮你熄灭那盏碍眼的灯&#xff1f; 又或者&#xff0c;你正窝在沙发上&#xff0c;享受电视剧的紧张刺激&am…...

分布式事务讲解 - 2PC、3PC、TCC

分布式事务讲解 - 2PC、3PC、TCC 前置知识 BASE理论&#xff1a; BASE是Basically Availbale(基本可用)、Soft state(软状态)、Eventually consistent(最终一致性)三个词语的缩写。BASE理论是对CAP理论中AP的一个扩展&#xff0c;通过牺牲强一致性来获得可用性&#xff0c;当…...

前端基础面试题·第四篇——Vue(其二)

1.Vue中路由传参 1.params传参 params 传参是通过URL路径来传递参数&#xff0c;这种方式传递的参数是必选的。这种传参方式需要在路由配置时在路由路径位置提前指定参数。 路由配置 const router new VueRouter({routes: [{path: /user/:id, // 这里的:id就是参数name: u…...

PHP反射

文章目录 介绍基本用法基本的反射示例1. 反射类2. 反射方法3. 反射属性4.反射全局函数5.反射函数的参数 优势和注意事项优势&#xff1a;注意事项&#xff1a; 介绍 PHP反射是一种强大的机制&#xff0c;允许在运行时检查类、接口、方法、属性等的结构和元数据。它可以用于许多…...

Gated Transformer Networks for Multivariate Time Series Classification

博客贡献人 徐宁 作者 Minghao Liu , Shengqi Ren , Siyuan Ma , Jiahui Jiao , Yizhou Chen , Zhiguang Wang(Facebook AI) and Wei Song∗ 标签 多元时间序列分类&#xff0c;Transformer&#xff0c;门控 摘要 用于时间序列分类的深度学习模型&#xff08;主要是卷积网…...

这一次,AI真的能帮你实现职场跃迁

你有没有想过&#xff1a; AI不仅能帮你实现工作提效 还能帮你实现职场跃迁&#xff01; 根据行业报告&#xff0c;近年来**AIGC&#xff08;AI Generated Content&#xff09;**领域岗位数量井喷式增长&#xff0c;AI大模型产品经理作为连接技术与市场的桥梁&#xff0c;正扮…...

Python绘制--绘制心形曲线

今天&#xff0c;我们将通过Python代码来绘制一个心形曲线&#xff0c;这是一个经典的数学表达。 一、心形曲线的数学原理 心形曲线&#xff0c;也被称为心脏曲线&#xff0c;是一个代数曲线&#xff0c;可以通过参数方程定义。其数学表达式如下&#xff1a; x16sin⁡3(t)x16…...

初识Linux · 自主Shell编写

目录 前言&#xff1a; 1 命令行解释器部分 2 获取用户命令行参数 3 命令行参数进行分割 4 执行命令 5 判断命令是否为内建命令 前言&#xff1a; 本文介绍是自主Shell编写&#xff0c;对于shell&#xff0c;即外壳解释程序&#xff0c;我们目前接触到的命令行解释器&am…...

海报设计模板免费的好用吗?活动海报排版技巧轻松get

虽然今年所有的法定节假日已经过完了&#xff0c;但对于电商打工族来说&#xff0c;需要制作活动海报的节日&#xff0c;还有很多吧...... 刚听到小道消息&#xff0c;说是今年的双十一&#xff0c;从十月十四号就开始预热了&#xff01; 怎么样&#xff0c;大家的预热活动海…...

【Linux基础】03 Linux环境基础开发工具使用

1. yum ——软件包管理器 yum 是我们 Linux 预装的一个指令&#xff0c;搜索、下载、、安装对应的软件 yum 相当于 Linux 的应用商店&#xff01; 安装与卸载 yum list | grep command 通过 yum list 命令可以罗列出当前一共有哪些软件包. 由于包的数目可能非常之多, 这里我…...

【CSS】flex: 1; 的意思

在 Flexbox 布局中&#xff0c;flex: 1; 是一个简写属性&#xff0c;它表示弹性容器中的子元素如何分配可用空间。flex: 1 意味着该元素可以根据剩余的空间进行扩展&#xff0c;占据相应的比例。具体来说&#xff0c;flex: 1; 是 flex-grow、flex-shrink 和 flex-basis 这三个属…...

OpenClaw定时任务:千问3.5-9B实现每日自动化巡检

OpenClaw定时任务&#xff1a;千问3.5-9B实现每日自动化巡检 1. 为什么需要自动化巡检 去年接手一个长期维护的Python项目时&#xff0c;我每天早晨都要手动检查服务器状态、数据库连接、日志错误和依赖库版本。这种重复劳动不仅耗时&#xff0c;还容易遗漏关键指标。直到发现…...

毕业设计用什么ai?实测8款AI论文生成工具测评,查重率仅6%超可靠!

每到毕业季&#xff0c;论文写作就成了无数学生的头号难题。从开题报告到文献综述&#xff0c;再到数万字的正文&#xff0c;每个环节都充满挑战。别担心&#xff01;AI论文写作工具的出现&#xff0c;让高效完成高质量论文成为可能。本文实测了8款主流AI论文生成工具&#xff…...

【数据结构与算法】二叉树从建立开始

为什么你学了二叉树却还是不会做题&#xff1f;从“建树”到“解题”的完整思维体系在学习数据结构的过程中&#xff0c;二叉树几乎是每个人都会接触的内容。但一个很现实的问题是&#xff1a;很多人会写遍历&#xff0c;却不会做题。表面上看是代码能力的问题&#xff0c;实际…...

有了这个Python备忘录,代码拿来即用

这段时间代码写的少了&#xff0c;周末用python写一个小爬虫&#xff0c;却发现连线程的一些方法都不记得了&#xff0c;还得百度查教程。工作越忙&#xff0c;记性越差&#xff0c;发现我疏远了代码&#xff0c;代码也疏远了我。 PS&#xff1a;对于小白来说自学也不是件容易…...

开发环境配置实战:通过Anaconda Prompt高效管理虚拟环境与Jupyter内核

1. 为什么需要Anaconda Prompt管理虚拟环境 作为数据科学领域的开发者&#xff0c;我经历过无数次Python环境混乱带来的痛苦。记得有一次在交付项目前&#xff0c;突然发现本地运行的模型在服务器上完全无法复现&#xff0c;排查了半天才发现是numpy版本不兼容的问题。这种经历…...

OpenClaw开发环境配置:千问3.5-9B辅助的IDE插件管理

OpenClaw开发环境配置&#xff1a;千问3.5-9B辅助的IDE插件管理 1. 为什么需要AI辅助的IDE管理 作为一个长期在多个项目间切换的全栈开发者&#xff0c;我深受开发环境配置问题的困扰。每次换新电脑或者重装系统&#xff0c;光是配置VSCode插件和项目依赖就要耗费大半天时间。…...

从NTU-RGB+D到实际应用:如何用这个数据集训练一个摔倒检测模型?

基于NTU-RGBD数据集的摔倒检测模型实战指南 在智能监护和安防领域&#xff0c;摔倒检测一直是个极具社会价值的课题。想象一下&#xff0c;当独居老人不慎跌倒时&#xff0c;系统能在第一时间发出警报&#xff1b;或是在建筑工地&#xff0c;实时监测工人安全状态——这些场景背…...

告别重复配置:用快马AI自动化生成规范化的软件安装包项目

今天想和大家分享一个提升开发效率的小技巧——如何用InsCode(快马)平台快速生成规范化的Python安装包项目。作为一个经常需要打包工具给团队使用的开发者&#xff0c;我深刻体会到手动配置各种安装文件的痛苦&#xff0c;直到发现了这个能自动化生成项目骨架的神器。 传统安装…...

Goldfish4Tech空气泵驱动库:嵌入式直流泵安全控制方案

1. Goldfish4Tech空气泵驱动库技术解析1.1 库定位与工程价值Goldfish4TechAirPump 是一款面向嵌入式平台的轻量级空气泵控制库&#xff0c;专为金鱼科技&#xff08;Goldfish4Tech&#xff09;系列微型直流空气泵设计。该库并非通用型电机驱动框架&#xff0c;而是针对特定硬件…...

实战指南:基于快马AI开发具备核心功能的电商比价插件

最近在做一个电商比价插件的开发项目&#xff0c;正好用到了InsCode(快马)平台&#xff0c;整个过程特别顺畅&#xff0c;分享下我的实战经验。 项目背景与需求分析 电商比价插件是很多网购达人的刚需工具。核心要解决三个问题&#xff1a;实时比价、历史价格追踪和降价提醒。传…...