前言 如果你针对Android Studio中的Gradle插件有不懂。打开老项目的时候,经常由于Gradle的版本号问题造成项目无法编译。...不了解Project目录下build.gradle中的com.android.tools.build:gradle版本与gradle/wrapper/gradle-wrapper.properties...Android Gradle 插件 Android Studio 是采用Gradle 进行代码的打包编译以及构建项目的。 但是Gradle是一个开源的自动构建工具,是面向全平台的。...所以Android 在基于Gradle进行了二次开发,整合了几项专门用于构建Android应用的功能。 而该工具命名为:com.android.tools.build:gradle:xxxx 。...Android Gradle的版本号 在Gradle发布7.0后,进行了同步。也就是我们在上面看到的。7.0之后就同步上了。
前言: 最近在做一个Android相关的小项目,因为之前这方面的项目做的比较的少。今天在使用虚拟机调试的时候经常出现一些莫名其妙的问题,经过自己多次的尝试和搜索终于解决了这些问题。...问题: 每次run(运行)项目在android Emulator一直显示黑屏问题,如下如所示: ? 可能是没有检测到匹配的虚拟设备(unknown devices): ?...解决方案: 重新创建一个新的虚拟设备(Create virtural devices),下载,安装:点击Android Virtual Device Manager(虚拟设备管理)按钮>Create...最后选择刚安装的虚拟设备运行android项目: ? 黑屏问题成功解决,项目界面正常展示: ? ?
1.在软件terminal中运行flutter --version 查看当前版本,我的版本是The current Flutter SDK version is 1.7.8+hotfix.4。...由于我们使用了视频播放的组件,所以版本需要升级到1.9.1以上 2.查看我的flutter路径 打开iterm , vim ~/.bash_profile 查看里面的配置 以下是我的配置 export...=/Users/mx/Library/Android/sdk export PATH=${PATH}:${ANDROID_HOME}/tools export PATH=${PATH}:${ANDROID_HOME...git status 查看git信息 4.git reset --hard fabeb2a16f1d008ab8230f450c49141d35669798 其中红色的字符串是commit版本号如下,...可以到Flutter Git源码里面去找https://github.com/flutter/flutter(Releas--tags--找到具体的版本号,点击-- fabeb2a即可看到commit号
大家好,又见面了,我是你们的朋友全栈君。 在.gradle目录中,修改init.gradle文件,修改其中的maven地址。...在.m2目录中,修改settings.xml文件,修改其中的maven地址。
目前,在排名前 1,000 位的 Android 应用中,已有超过 60% 正在使用 Kotlin 进行开发。为什么 Kotlin 受到这么多开发者的喜爱呢?...才能对其解析引用,否则会触发 Android Studio 报错,而且 Kotlin 编译器也会在构建时抛出错误。...更多详情: youtrack.jetbrains.com/issue/KT-36… Android 11 中的可空性 我们在近期发布了 Android 11 开发者预览版,邀请开发者们试用最新的 Android...您可以通过在代码中添加空值检查来解决这些警告或报错。...我们将继续遵循以下原则为 Android SDK 添加注释: 先在较低版本 (例如 Android 10) 中采用 @RecentlyNullable 和 @RecentlyNonNull,然后再在新版本
2.然后安装Andorid Studio,都是一键安装的即可。...然后打开android studio(简称AS)新建一个flutter项目,然后AS会选择gradle构建项目,下载一些必要的package,这时候就开始有很多坑了。...* In an app project, this is ../.. since the app's build.gradle is under android/app. */...dependencies { /* When bumping, also update ndkVersion above. */ classpath 'com.android.tools.build...:gradle:4.1.0' } } 这个是默认的原配置文件的内容 那么我们要在第31行的下面新增一些地址: maven { url 'https://maven.aliyun.com/repository
IO 调度器中启动一个协程,但它们之间有一些区别: GlobalScope.launch(Dispatchers.IO){} 是在全局范围内启动一个协程,不受外部作用域的限制。...CoroutineScope(Dispatchers.IO).launch {} 是在指定的 CoroutineScope 中启动一个协程,通常情况下应该手动创建 CoroutineScope 对象,并确保在合适的时机取消该...比如:网络请求,数据库操作,文件操作等 Main:UI调度器,只有在UI编程平台上有意义,用于更新UI,例如Android中的主线程 Unconfined:非受限调度器,无所谓调度器,当前协程可以运行在任意线程上...协程的生命周期: 协程创建以后,处于New(新建)状态, 协程启动(调用start()方法)以后,处于Active(活跃) 状态, 协程及所有子协程完成任务以后,处于Completed(完成) 状态,...().name}") } rememberCoroutineScope(): 这是一个 Composable 函数,用于在 Composable 中创建一个记住的(remembered)协程作用域。
因为一个静态代理类只能服务一种类型的目标对象,在目标对象较多的情况下,会出现代理类较多、代码量较大的问题。 而使用动态代理动态生成代理者对象能避免这种情况的发生。...时,将会在工程目录下生成 $Proxy0 的 class 文件(由于生成代理类的 ProxyGenerator 类在 sun.misc 包中,在 Android Studio 中无法调用,所以这里是在...这里的源码分析分为两个版本:JDK 1.7,JDK 1.8。...五、动态代理在 Android 中的应用 1、Android 的跨进程通信中使用了动态代理 比如 Activity 的启动过程,其实就隐藏了远程代理的使用。...2、Retrofit 中 create() 方法通过动态代理获取接口对象。 这些场景可能不够全面,大家可以在评论区补充,看到新的场景,我后续也会补充的。
升级内容主要有两个方面: ①包名→ Support Library 中的API包名都是 android.support.,而AndroidX Library中的API都变成androidx....一键迁移 AS 3.2及以上版本提供了一键迁移到AndroidX的功能,依次点击菜单栏的 Refactor → Migrate to AndroidX。...如果迁移失败,就重复下面的①②③④步进行手动迁移吧~ ① 版本要求 Android Studio → 升级到3.2及以上; Gradle插件 → 升级到4.6及以上,可在gradle/wrapper/gradle-wrapper.propertie...中修改distributionUrl指向版本号; compileSdkVersion → 升级到28及以上; buildToolsVersion → 升级到28.0.2及以上; ② 迁移AndroidX...配置 在项目的 gradle.properties 文件中添加下述配置: # 当前项目启用androidx android.useAndroidX=true # 将依赖包也迁移到androidx,一般写
大家好,在写安卓的时候我这边只写前端的简单页面,在写跳转的时候就开始报错了,本人看了好几天也没定位到错误,希望各位大神遇到的多多指点。...(this); 是在一起的 之前大家一直问有解决没有 我这里是贴了解决的办法 可能不明显 我遇到的是这个问题 ,希望可以帮到大家 package com.lenovo.myapplication;...import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle...; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity...写作、阅读、分享,用独自的思考和感悟分享给互联网里的每一位技术人。 不爱学习的我们,无力的挣扎吧!
:appcompat:1.0.0' 0x3、从Support过渡到AndroidX 一键迁移 AS 3.2及以上版本提供了一键迁移到AndroidX的功能,依次点击菜单栏的 Refactor → Migrate...如果迁移失败,就重复下面的①②③④步进行手动迁移吧~ ① 版本要求 Android Studio → 升级到3.2及以上; Gradle插件 → 升级到4.6及以上,可在gradle/wrapper/gradle-wrapper.propertie...中修改distributionUrl指向版本号; compileSdkVersion → 升级到28及以上; buildToolsVersion → 升级到28.0.2及以上; ② 迁移AndroidX...配置 在项目的gradle.properties文件中添加下述配置: 当前项目启用androidx android.useAndroidX=true 将依赖包也迁移到androidx,一般写true 如果设为...或下载映射的 CSV文件,修改示例如下: implementation com.android.support:cardview-v7 替换成→ implementation androidx.cardview
Android Studio 3.4推出有一段时间了,升级之后又有几个问题需要处理,说明如下: 一、把Gradle升级到AS3.4配套的5.1.1版本 1、手工下载Gradle4.6并解压,下载地址是...将下载的压缩包解压到本地目录,比如解压到D:\Android\gradle-5.1.1 2、打开Android Studio,依次选择菜单“File”——“Settings”——“Build, Execution...二、在新建的项目中导入外部模块时报错 报错信息为“错误: 程序包android.support.v7.app不存在”,错误截图如下所示: ?...com.android.support:cardview-v7 androidx.cardview:cardview:1.0.0 com.android.support:design com.google.android.material....widget.CardView androidx.cardview.widget.CardView android.support.v7.graphics.Palette androidx.palette.graphics.Palette
Android源码中的应用 在以前,我们最常用到的控件就是ListView了,而ListView最重要的一个点就是Adapter,在我们往ListView添加数据后,我们都会调用一个方法: notifyDataSetChanged...跟进这个方法notifyDataSetChanged方法,这个方法定义在BaseAdapter中,代码如下: public abstract class BaseAdapter implements ListAdapter...AdapterDataSetObserver,最后将这个观察者注册到adapter中,这样我们的被观察者、观察者都有了。...AdapterDataSetObserver定义在ListView的父类AbsListView中,代码如下 : class AdapterDataSetObserver extends AdapterView...在AdapterDataSetObserver的onChanged函数中会获取Adapter中数据集的新数量,然后调用ListView的requestLayout()方法重新进行布局,更新用户界面。
简介 在Google IO大会中不仅仅带来了Android Studio 2.2预览版,同时带给我们一个依赖约束控件–ConstraintLayout。...一种构建于弹性Constraints(约束)系统的新型Android Layout,最终你将会在Android Studio中编辑与构建一个相对复杂的Layout。...简单来说,她是相对布局的升级版本,但是区别与相对布局更加强调约束。何为约束,即控件之间的关系。 来看一张google给出的一张案例效果: ?...> 我们来看看新版的studio在工作区相对以前版本的变化 工作区 在工作区中有两种预览,一种设计预览,一种叫做蓝图的东西。...这里要介绍下,在工作区的左上角的几个图标的作用。 ? 眼睛图标:用来控制是否显示约束的东西。 ?
,此时,需要在工厂方法的参数列表中传入一个 Class 类来决定是哪一个产品类: public abstract class Factory { /** * @param clz 产品对象类类型...Factory { public static Product createProduct() { return new ConcreteProductA(); } } 源码中的应用...Iterator iterator(); } 这意味着 List、Set 接口也会继承 iterator() 方法,下面以 ArrayList 为例进行分析: ArrayList 中...其实Android中对工厂方法模式的应用更多,先看如下代码: public class AActivity extends Activity{ @Override protected void...在AActivity的onCreate方法中构造一个View对象,并设置为当前的ContentView返回给framework处理,如果现在又有一个BActivity,这时又在onCreate方法中通过
零、前言 [1].CardView extends FrameLayout [2].一个带圆角和阴影的FrameLayout,FrameLayout怎么用,它就怎么用 [3].依赖implementation...'com.android.support:cardview-v7:26.1.0' ?...app:paddingEnd 内容与边距的间隔终止 app:cardUseCompatPadding 设置内边距,在API21及以上版本和之前的版本仍旧具有一样的计算方式...app:cardPreventConrerOverlap 在API20及以下版本中添加内边距,这个属性为了防止内容和边角的重叠 注意:CardView中使用android:background...会自动添加一些额外的padding空间来绘制阴影部分, 这也导致了以V21为界的不同系统上CardView的尺寸大小不同 app:cardUseCompatPadding="true"适配 2.圆角覆盖
↳ android.widget.FrameLayout ↳ android.support.v7.widget.CardView ---- 从官方的文档中我们可以看出: CardView:有圆角的背景和阴影的...CardView 扩展 FrameLayout 类别并让您能够显示卡片内的信息,这些信息在整个平台中拥有一致的呈现方式。CardView 小组件可拥有阴影和圆角。...CardView 在 Android 5.0(API 级别 21)及更高版本中使用真实高度与动态阴影,而在早期的 Android 版本中则返回编程阴影实现。...card_view:cardPreventConrerOverlap 在V20和之前的版本中添加内边距,这个属性为了防止内容和边角的重叠 一般来说和RecyclerView搭配起来使用效果更加~ --...5.0以下版本的效果 ?
在Google I/O 2014上,Google公布了Android L Preview版本,此版本的UI有了非常大的改变,很炫很给力!...虽然说CardView整合到了V7中,但是在support-v7中并不能发现,通过查看sdk extra路径下的文件可以发现,其名字叫cardview-v7。 ?...在Android gradle tools 0.11版本后,可以通过xml中的tools配置进行节点替换,而AndrodiStudio对gradle tools的支持更好一些,其ParentIDE Intellij...都不行,所以目前我能找到的正常使用CardView的IDE及配置办法只有在AndroidStudio中,不过这也是趋势,早用早好的事情。...解决办法: 在使用CardView的工程的AndroidManifest.xml中: <uses-sdk xmlns:tools="http://schemas.android.com
文章目录 一、问题描述 二、Android Studio 版本、Gradle 版本、Gradle 插件版本 Android Gradle 插件版本说明 一、问题描述 ---- 起因 : 需要配置 Android...Studio 版本 , Gradle 版本 , Gradle 插件版本 配置不匹配导致 ; 报错信息 1 : Could not find method buildFeatures() for arguments...Studio 版本、Gradle 版本、Gradle 插件版本 ---- Android Studio 版本 : 4.1 如果要配置 buildFeatures , 必须使用 4.1 以上的 Android...Studio 版本 , 这是支持 buildFeatures 的最低版本 ; Gradle 版本 : 最低版本 6.6.1 , 在 gradle-wrapper.properties 中进行如下配置...4.1.0 , 在工程目录下的 build.gradle 中配置 : buildscript { dependencies { classpath 'com.android.tools.build
Android Studio中的 重构 > 迁移到 AndroidX 工具会将您的 Design Support Library 依赖重构成 MDC。...下面我们通过一些常见的迁移方案来了解一下这些问题 文字栏位改变 在 MDC 中,文字字段默认样式发生了改变。改进版本是经过用户调查研究的。 ? 我们建议您使用这个版本,来提高可用性和可配置项性。...下面这几种情况应该考虑 在布局中写的控件如果有对应的 MDC 控件的话,直接使用 MDC 控件 任何的风格,默认风格和默认风格属性应该改变成 MDC 版本 在编程中或者自定义类的父级类使用的任何控件都应该为...,以使用自定义字体系列,XML或通过Android Studio 下载字体: android:background 例子 在我们的示例中我们可以删除一些由 shape theming 来处理的属性。
领取专属 10元无门槛券
手把手带您无忧上云