Android Studio工程导入及坑的解决

来自:网络
时间:2022-08-07
阅读:
目录

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

Androdi Studio 导入工程步骤

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

本地工程导入

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

Android Studio工程导入及坑的解决

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

需要说明的是,这种导入方式的前提是本地工程也是有Android Studio IDE 开发的,如果不是的话,需要使用File-New-Import project...进行导入。

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

远端库导入

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

Android Studio工程导入及坑的解决

通过小加号增加自己在该平台的用户,然后就可以直接从该平台拉取代码了。
然后,通过File-New-Project from Version Control...单击导入,如下图。

Android Studio工程导入及坑的解决

将我们需要的需要的远程仓地址填入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

Android Studio工程导入及坑的解决

在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兼容问题等着你呢。尽可能避免这种劝退事件的发生。

返回顶部
顶部