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

使用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的地方还是标红的,标红问题暂时未解决,只解决了编译问题。
继续标红

2、Installation did not succeed.

提示:
Installation did not succeed.
The application could not be installed: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
List of apks:
[0] ‘D:\Code\app\build\outputs\apk\debug\app-debug.apk’
Installation failed due to: ‘Failed to commit install session 536069324 with command cmd package install-commit 536069324. Error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE: Package couldn’t be installed in /data/app/com.gwm.car.usblistener-Ggm1yrjuga-bWTjnyFohSA==: Package com.gwm.car.usblistener has no signatures that match those in shared user android.uid.system; ignoring!’
原因:
在模拟器里面跑的,大概意思是没有android.uid.system的sharedUserId。我这里的话,换成我测试的目标设备就可以了。


http://www.kler.cn/news/339859.html

相关文章:

  • 前端编程艺术(3)---JavaScript
  • 开源 Three.js 案例及入门教程
  • uni-app之旅-day03-搜索
  • Jenkins打包,发布,部署
  • 【Golang】语法基础——切片:灵活、高效的数据处理利器
  • 如何查看是否是ip转发?
  • 自动化测试selenium篇(一)
  • 数字通信中不同信道类型对通信系统性能影响matlab仿真分析,对比AWGN,BEC,BSC以及多径信道
  • JavaWeb 15.详解Servlet及其源码
  • HTTP 和 WebSocket
  • PHP爬虫:获取商品SKU详细信息的利器
  • openpnp - ReferenceStripFeeder config
  • 【SQL】掌握SQL查询技巧:数据分组与排序
  • k8s实战-1
  • C++:string (用法篇)
  • linuxshell日常脚本命令之sed命令
  • 利用Ollama本地LLM 搭建AI,保姆级教程!
  • 蓝牙模块(BT04/HC05)
  • 点评项目-4-隐藏敏感信息、使用 redis 优化登录业务
  • sqli-labs less-12 post注入