由于工作原因,需要将工程传递给一些新人小朋友,交互过程中,发现有几个典型的问题值得记录分享一下,以资来者。

androdi studio 导入工程步骤

as导入工程常用的有两种途径一种是通过本地工程导入,还有一种是从远端的版本管理仓拉取工程。

本地工程导入

本地工程导入比较简单,点击菜单file,然后找到open...点击,便可以得到下图。

在目录栏目输入你本地工程所在地址,便可以看到你的本地工程名,而且还是一个android机器人的图标,选中后点击ok即可完成本地工程导入。

需要说明的是,这种导入方式的前提是本地工程也是有android studio ide 开发的,如果不是的话,需要使用filenewimport project...进行导入。

新版的as会帮你自动替换一些本地sdk的路径什么的,基本上一路点yes就可以了。

远端库导入

远端库拉取工程的方法也不复杂,只是在导入前我们要进行一下用户配置。
首先通过filesettings进入ide设置页找到version control里的对应仓平台,我由于没有科学上网,所以选择了gitee平台,如果’settings’中没有这个选项,从上面plugins里面下一个插件即可。

通过小加号增加自己在该平台的用户,然后就可以直接从该平台拉取代码了。
然后,通过filenewproject 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兼容问题等着你呢。尽可能避免这种劝退事件的发生。

到此这篇关于android studio工程导入及坑的解决的文章就介绍到这了,更多相关android studio工程导入内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!