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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • TCP服务端和客户端连接

    TCP服务端和客户端连接TCP:Transmission Control Protocol 传输控制协议 ,是一种面向连接的、可靠的、基于字节流的传输层通信协议。注:先启动服务端,再启动客户端。客户端:package TCP;import java.io.IOException;import java.net.Socket;import java.util.Scanner;// 客户端pub…

    2022年6月13日
    34
  • android插件化资源_android 插件化

    android插件化资源_android 插件化AndroidEagleEye是一个基于Xposed的应用,可以实现对Android系统API与应用自身方法的Hook,最终会将Hook的API或方法的信息以Log的形式输出,包括应用的uid、API或方法的名称、参数信息等。在使用AndroidEagleEye过程中对设备造成的任何风险自负特色可实现对Android系统API以及应用自身方法的Hook可根据配置

    2022年8月16日
    7
  • ios 越狱 真机调试

    ios 越狱 真机调试开发环境:Xcode4.5.2ios设备需要越狱并从Cydia安装appsync安装appsync步骤:1、找到安装的cydia,第一次运行将会弹出提示,选择开发者即可2、在工具栏中选择软件源(iphone/itouch选管理),然后点右上角的编辑3、点左上角添加4、输入源:http://yuan.duowan.com/(多玩的源),点添加源,等待添加完成,然后点返回C

    2022年5月17日
    37
  • 雷电模拟器抓包教程_fiddler抓包安卓模拟器

    雷电模拟器抓包教程_fiddler抓包安卓模拟器1、首先,百度检索。参考别人的,大致上都是到安装证书就失败了。我后面只说几个关键点。2、安装证书,必须设置屏幕密码。我最开始使用把cef拷贝到,手机结果出现bug,安装不了。后来采用了在手机内部访问

    2022年8月1日
    6
  • drupal安装心得

    drupal安装心得一转眼,原来发现自己两个月没有写blog,。其实这两个月做了很多东西,但细想却没有什么值得拿出来和大家分享。前几天公司的bbs倒了,于是想重装一个类似于blog或者论坛之类的东西。由于IT的同事只熟悉PHP,于是到处找php的建站资源。后来nomad介绍drupal,Rayman也说这个不错,于是就尝试安装一个。网上的资料基本都是Linux下的安装过程介绍,几个rpm装好apache/mysql/

    2022年7月20日
    12
  • web.config connectionStrings[通俗易懂]

    web.config connectionStrings[通俗易懂] web.configconnectionStrings数据库连接字符串的解释先来看一下默认的连接SQLServer数据库配置  SqlConnectionStringBuilder实例化时需要使用connectionString。如:SqlConnectionStringBuildbuilder=newSqlConnectionStringBuild(connection

    2022年5月21日
    34

发表回复

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

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