androidX_android targetSdkVersion

androidX_android targetSdkVersionAndroidX简介:Android9.0(APIlevel28)发布时,AndroidX也作为一个新的支持库发布出来了。AndroidX时Jetpack的一部分,它包含了现有的支持库和最新的

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

AndroidX简介:

Android 9.0(API level 28)发布时,AndroidX也作为一个新的支持库发布出来了。AndroidX时Jetpack的一部分,它包含了现有的支持库和最新的Jetpack组件。

AndroidX 与 Android 操作系统分开提供,并与各个 Android 版本向后兼容。AndroidX 完全取代了支持库(android.support.v7或android.support.v4),不仅提供同等的功能,而且提供了新的库。所以对于使用AndroidX后,不需要因为使用v4还是v7库而烦恼了。

修改项目中的gradle.properties文件中将下面两个属性置为true就能完全使用AndroidX的库了。
android.useAndroidX:使用相应的 AndroidX 库,而非支持库
android.enableJetifier:重写其二进制文件,自动迁移现有的第三方库以使用 AndroidX

 

更多具体信息及如何使用请到android官网查看文档:

https://developer.android.google.cn/jetpack/androidx

 

Junit4:

这里简单记录分享下

背景:Android Studio中调试Room相关时碰到的问题(如 java.lang.ClassNotFoundException: Didn’t find class “android.support.test.runner.AndroidJUnitRunner” )

Room调试中使用的是AndroidX的库,而默认Junit使用的是非AndroidX库,导致出现各种报错。理清这个,修改下依赖库即可解决问题。

1.在默认情况下,Android Studio使用的是非AndroidX支持库中的Junit的相关库,build.gradle(Module:app) 中关于Junit大概配置如下:

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.flx.testjunit"
        minSdkVersion 27
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

2.AndroidX库关于Junit的配置如下。

如AndroidX简介中所述,gradle.properties(Project Properties)中添加:

android.useAndroidX=true
android.enableJetifier=true

build.gradle(Module:app) 中:

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.flx.testjunitandroidx"
        minSdkVersion 27
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.0.0-beta01'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
    implementation 'com.google.android.material:material:1.0.0-beta01'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
}

修改配置后 重新Build下工程,具体类中报错重新import对应的库类即可。

 

运行Junit:

下面是简单的示例图片

androidX_android targetSdkVersion

从上面看:

(1)点击1处的Structure即可出现2的窗口,右击2处即可执行

(2)4和5处已经左边有明显的结果提示,如上”passed:1 of 2“。5处有具体报错信息。

(3)3处有androidTes和test两个文件夹,有什么区别呢,

androidTest/java: Android单元测试,执行测试的时候需要连接Android设备(或AVD),需要Android环境。
test/java: JUnit单元测试,不需要Android依赖,运行在当前电脑中。

 

 下图是便捷的创建测试:

androidX_android targetSdkVersion

 

常用断言:

assertEquals, 预期和实际相等,不相等则抛出异常和信息
assertNotEquals, 预期和实际不相等,相等则抛出异常和信息
assertNull,传入的为空,不为空抛出异常和信息
assertNotNull,传入非空,为空时抛出异常和信息
assertTrue,断言为真,如果为假(false)则抛出异常和信息
assertFalse,断言为假,如果为真(true)则抛出异常和信息
assertSame,引用同一对象,如果不是则抛出异常和信息
assertNotSame, 引用不同对象,如果是同一对象则抛出异常和信息

下面的例子的断言都是OK的,没有异常:

androidX_android targetSdkVersion

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166921.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • webrtc技术原理_webrtc开源项目

    webrtc技术原理_webrtc开源项目一、概述webrtc冗余打包方式有三种:Red(rfc2198)、Ulpfec(rfc5109)、Flexfec(草案)。其中Red和Ulpfec要成对使用。二、RedFEC简单将老报文打包到新包上。如下图所示,冗余度为1时,RFC2198打包情况:这种方法在音视频领域几乎不使用,因为冗余包只能保护特定一个报文,这种方法带宽占用量很大,恢复能力有限,性价比很低。只是早期的T38……

    2022年8月11日
    4
  • 【Python】解决Pycharm中pip更新问题「建议收藏」

    【Python】解决Pycharm中pip更新问题「建议收藏」pycharm安装第三方模块失败,要求更新pip

    2025年7月29日
    0
  • 域名解析的DNS缓存如何清理

    域名解析的DNS缓存如何清理

    2021年11月4日
    40
  • VS中时间控件的使用[通俗易懂]

    VS中时间控件的使用[通俗易懂]使用方法:1.下载时间控件 My97DatePickerBeta.2.在VS中新建项目,添加web窗体。3.将下载好的文件导入你的项目文件中,然后添加如下代码: <scriptsrc="Content/My97DatePickerBeta/WdatePicker.js"type="text/javascript"></script>//引号内为Wdat…

    2022年5月24日
    128
  • 大数据技术包括哪些内容?

    大数据技术包括哪些内容?关于大数据的概念,指的是无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合。而大数据技术,是指从各种各样类型的数据中,快速获得有价值信息的能力。那么关于大数据的技术大致包含哪些内容?第一,数据采集ETL工具负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。…

    2022年6月5日
    50
  • 推荐三十款最好的免费项目管理软件

    推荐三十款最好的免费项目管理软件1.TeamLab  TeamLab 是一个免费开源的商业协作和项目管理的平台。TeamLab 主要功能包括:项目管理、里程碑管理、任务、报表、事件、博客、论坛、书签、Wiki、即时消息等等。2.XPlanner+   XPlanner是专门为XP(极限编程)团队设计的项目管理工具3.NavalPlan   NavalPlan是一

    2022年5月13日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号