Android Studio工程导入及坑的解决
作者:kiba_zwei 发布时间:2022-01-12 20:48:31
由于工作原因,需要将工程传递给一些新人小朋友,交互过程中,发现有几个典型的问题值得记录分享一下,以资来者。
Androdi Studio 导入工程步骤
AS导入工程常用的有两种途径一种是通过本地工程导入,还有一种是从远端的版本管理仓拉取工程。
本地工程导入
本地工程导入比较简单,点击菜单File
,然后找到Open...
点击,便可以得到下图。
在目录栏目输入你本地工程所在地址,便可以看到你的本地工程名,而且还是一个Android机器人的图标,选中后点击OK
即可完成本地工程导入。
需要说明的是,这种导入方式的前提是本地工程也是有Android Studio IDE 开发的,如果不是的话,需要使用File
-New
-Import project...
进行导入。
新版的AS会帮你自动替换一些本地SDK的路径什么的,基本上一路点Yes就可以了。
远端库导入
远端库拉取工程的方法也不复杂,只是在导入前我们要进行一下用户配置。
首先通过File
-Settings
进入IDE设置页找到Version Control
里的对应仓平台,我由于没有科学上网,所以选择了Gitee平台,如果’Settings’中没有这个选项,从上面Plugins里面下一个插件即可。
通过小加号增加自己在该平台的用户,然后就可以直接从该平台拉取代码了。
然后,通过File
-New
-Project from Version Control...
单击导入,如下图。
将我们需要的需要的远程仓地址填入URL中(如:git@gitee.com:kiba03/DeveloperLab.git),再点击Clone按钮即可完成导入。
检查点&修改方案
local.properties
导入了新的工程到AS中后,新版的IDE会自动帮你替换相关的SDK地址等。保险起见,还是检查一下为好。
local.properites
是工程的本地配置文件,一般会存有SDK的地址,其他的本地配置建议另建一个目录比较好。所以,外部导入的新工程可能这个地方还会是之前的设备的SDK地址,这块首先要改成自己的,如果不知道的话,本地新建一个工程,同样目录下找到local.properties复制过来即可。
## This file must *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.
#
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
#Mon Aug 30 23:04:19 CST 2021
sdk.dir=C\:\\Users\\kiba\\AppData\\Local\\Android\\Sdk
Gradle版本
gradle是一个类似maven的打包框架,对于Android初学者而言比较头疼,经常是被gradle版本对不上而导致工程导入失败。作为菜鸟,一口气解决gradle报出的所有疑难杂症,显然是不现实的,但起码要学会查看项目的gradle版本。
右键单击项目根目录,菜单中选择Open Module Settings
在Project栏目先我们可以看到,当前工程的gradle插件版本为4.1.1,gradle版本为6.5。
新导入的工程无法编译九成就是工程gradle版本不支持导致的。如果科学上网的话,可以通过ide自动帮你从官网下载,如果没有,则极有可能下载超时。这个时候就是通过这个版本号到百度查找对应的下载包,然后修改gradle-wrapper.properties
中的distributionUrl
字段为本地目录
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
Android版本
当导入成功了工程,并能启动编译并且安装到测试机了。你的导入工作基本上完成了90%,下面跑一下基本功能吧。有时候最后一步也无法顺利完成,APP在启动中crash了。。。
这个时候用logcat查看崩溃日志是最直接的方法。除了这个外,还可以考虑查看一下当前测试机Android版本和工程的Android版本是否匹配,有些时候Android版本的不匹配会导致接口调用失败,从而导致APP crash。
打开AndroidManifest.xml
文件,可以看到类似下列代码。
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
applicationId "com.example.developerlab"
minSdkVersion 28
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
其中‘compileSdkVersion’表示编译Android SDK版本,minSdkVersion
表示APP运行要求的手机最低安卓版本,targetSdkVersion
表示目标手机Android版本。一般情况下,要想APP能够流畅的在手机上运行,手机Android版本一定要大于等于Android版本。
Android 10的版本号为29,Android 11为30,其他的版本号可以查阅Google官网
如果发现当前测设备Android版本低于工程需要,别纠结了立刻换测试机,因为即使你通过修改代码解决了一个api兼容问题,后面还可能有无数个api兼容问题等着你呢。尽可能避免这种劝退事件的发生。
来源:https://blog.csdn.net/kiba_zwei/article/details/124955877
猜你喜欢
- 背景项目中经常会用到消息推送功能,关于推送技术的实现,我们通常会联想到轮询、comet长连接技术,虽然这些技术能够实现,但是需要反复连接,对
- 环境JDK 1.8Spring Boot 2.3.0.RELEASEMaven 3.6.1H2 数据库用户名密码登录首先,我们用 Sprin
- 我们用React Native 做混合开发的时候免不了要原生和React Native 进行通信交互,这篇文章就是分享原生模块与JS传递数据
- Maven 的生命周期maven 将项目的生命周期(Lifecycle)抽象为了三种,每种生命周期中又包含了多个阶段(Phase)。也就是说
- Memcached 介绍Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据
- 本文实例为大家分享了C#实现QQ聊天窗口的具体代码,供大家参考,具体内容如下分析需要两个TextBox,一个用于显示消息,一个用于编辑消息需
- GUI编程实现贪吃蛇小游戏,供大家参考,具体内容如下1、编写主方法实现启动类2、准备好素材图片,编写数据类3、代码主体部分:在panel面板
- Android5.0之后提供了JobService和JobScheduler,用于在稍后的某个时间点或者当满足某个特定的条件时执行一个任务
- Java进阶之FileUpload完成上传的实例 FileUpload是Apache commons下面
- 本篇文章介绍SpringBoot的上传和下载功能。一、创建SpringBoot工程,添加依赖compile("org.spring
- 一、整体设计1、需求分析池化技术是计算机中的一种设计模式,内存池是常见的池化技术之一,它能够有效的提高内存的申请和释放效率以及内存碎片等问题
- 利用栈实现一个简易计算器(Java实现),供大家参考,具体内容如下一、思路分析当我们输入一个类似于“7*2+100-5+
- 在使用SpringBoot做接口访问如何做接口的限流,这里我们可以使用google的Guava包来实现,当然我们也可以自己实现限流,Guav
- 文件上传在web应用中非常普遍,要在jsp环境中实现文件上传功能是非常容易的,因为网上有许多用java开发的文件上传组件,本文以common
- private void btnSave_Click(object sender, RoutedEventArgs e)
- 本文实例为大家分享了java实现拼图游戏的具体代码,供大家参考,具体内容如下游戏说明:设计一款拼图游戏,要求点击图片按钮,实现图片按钮的移动
- 需求背景闲话不扯,直奔主题。需要和web前端建立长链接,互相实时通讯,因此想到了websocket,后面随着需求的变更,需要用户订阅主题,实
- 传值就是将实参的值传到所调用的函数里面,实参的值并没有发生变化,默认传值的有int型,浮点型,bo
- 问题描述Feign 在请求时是不会将 request 的请求头带着请求的,导致假如 Feign 调用的接口需要请求头的信息,比如当前用户的
- Java的NIO中的管道,就类似于实际中的管道,有两端,一段作为输入,一段作为输出。也就是说,在创建了一个管道后,既可以对管道进行写,也可以