網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
由于工作原因,需要將工程傳遞給一些新人小朋友,交互過(guò)程中,發(fā)現(xiàn)有幾個(gè)典型的問(wèn)題值得記錄分享一下,以資來(lái)者。
Androdi Studio 導(dǎo)入工程步驟
AS導(dǎo)入工程常用的有兩種途徑一種是通過(guò)本地工程導(dǎo)入,還有一種是從遠(yuǎn)端的版本管理倉(cāng)拉取工程。
本地工程導(dǎo)入
本地工程導(dǎo)入比較簡(jiǎn)單,點(diǎn)擊菜單File
,然后找到Open...
點(diǎn)擊,便可以得到下圖。
在目錄欄目輸入你本地工程所在地址,便可以看到你的本地工程名,而且還是一個(gè)Android機(jī)器人的圖標(biāo),選中后點(diǎn)擊OK
即可完成本地工程導(dǎo)入。
需要說(shuō)明的是,這種導(dǎo)入方式的前提是本地工程也是有Android Studio IDE 開(kāi)發(fā)的,如果不是的話,需要使用File
-New
-Import project...
進(jìn)行導(dǎo)入。
新版的AS會(huì)幫你自動(dòng)替換一些本地SDK的路徑什么的,基本上一路點(diǎn)Yes就可以了。
遠(yuǎn)端庫(kù)導(dǎo)入
遠(yuǎn)端庫(kù)拉取工程的方法也不復(fù)雜,只是在導(dǎo)入前我們要進(jìn)行一下用戶配置。
首先通過(guò)File
-Settings
進(jìn)入IDE設(shè)置頁(yè)找到Version Control
里的對(duì)應(yīng)倉(cāng)平臺(tái),我由于沒(méi)有科學(xué)上網(wǎng),所以選擇了Gitee平臺(tái),如果’Settings’中沒(méi)有這個(gè)選項(xiàng),從上面Plugins里面下一個(gè)插件即可。
通過(guò)小加號(hào)增加自己在該平臺(tái)的用戶,然后就可以直接從該平臺(tái)拉取代碼了。
然后,通過(guò)File
-New
-Project from Version Control...
單擊導(dǎo)入,如下圖。
將我們需要的需要的遠(yuǎn)程倉(cāng)地址填入U(xiǎn)RL中(如:git@gitee.com:kiba03/DeveloperLab.git),再點(diǎn)擊Clone按鈕即可完成導(dǎo)入。
檢查點(diǎn)&修改方案
local.properties
導(dǎo)入了新的工程到AS中后,新版的IDE會(huì)自動(dòng)幫你替換相關(guān)的SDK地址等。保險(xiǎn)起見(jiàn),還是檢查一下為好。
local.properites
是工程的本地配置文件,一般會(huì)存有SDK的地址,其他的本地配置建議另建一個(gè)目錄比較好。所以,外部導(dǎo)入的新工程可能這個(gè)地方還會(huì)是之前的設(shè)備的SDK地址,這塊首先要改成自己的,如果不知道的話,本地新建一個(gè)工程,同樣目錄下找到local.properties復(fù)制過(guò)來(lái)即可。
## 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是一個(gè)類似maven的打包框架,對(duì)于Android初學(xué)者而言比較頭疼,經(jīng)常是被gradle版本對(duì)不上而導(dǎo)致工程導(dǎo)入失敗。作為菜鳥(niǎo),一口氣解決gradle報(bào)出的所有疑難雜癥,顯然是不現(xiàn)實(shí)的,但起碼要學(xué)會(huì)查看項(xiàng)目的gradle版本。
右鍵單擊項(xiàng)目根目錄,菜單中選擇Open Module Settings
在Project欄目先我們可以看到,當(dāng)前工程的gradle插件版本為4.1.1,gradle版本為6.5。
新導(dǎo)入的工程無(wú)法編譯九成就是工程gradle版本不支持導(dǎo)致的。如果科學(xué)上網(wǎng)的話,可以通過(guò)ide自動(dòng)幫你從官網(wǎng)下載,如果沒(méi)有,則極有可能下載超時(shí)。這個(gè)時(shí)候就是通過(guò)這個(gè)版本號(hào)到百度查找對(duì)應(yīng)的下載包,然后修改gradle-wrapper.properties
中的distributionUrl
字段為本地目錄
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
Android版本
當(dāng)導(dǎo)入成功了工程,并能啟動(dòng)編譯并且安裝到測(cè)試機(jī)了。你的導(dǎo)入工作基本上完成了90%,下面跑一下基本功能吧。有時(shí)候最后一步也無(wú)法順利完成,APP在啟動(dòng)中crash了。。。
這個(gè)時(shí)候用logcat查看崩潰日志是最直接的方法。除了這個(gè)外,還可以考慮查看一下當(dāng)前測(cè)試機(jī)Android版本和工程的Android版本是否匹配,有些時(shí)候Android版本的不匹配會(huì)導(dǎo)致接口調(diào)用失敗,從而導(dǎo)致APP crash。
打開(kāi)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運(yùn)行要求的手機(jī)最低安卓版本,targetSdkVersion
表示目標(biāo)手機(jī)Android版本。一般情況下,要想APP能夠流暢的在手機(jī)上運(yùn)行,手機(jī)Android版本一定要大于等于Android版本。
Android 10的版本號(hào)為29,Android 11為30,其他的版本號(hào)可以查閱Google官網(wǎng)
如果發(fā)現(xiàn)當(dāng)前測(cè)設(shè)備Android版本低于工程需要,別糾結(jié)了立刻換測(cè)試機(jī),因?yàn)榧词鼓阃ㄟ^(guò)修改代碼解決了一個(gè)api兼容問(wèn)題,后面還可能有無(wú)數(shù)個(gè)api兼容問(wèn)題等著你呢。盡可能避免這種勸退事件的發(fā)生。
原文鏈接:https://blog.csdn.net/kiba_zwei/article/details/124955877
相關(guān)推薦
- 2022-02-26 小程序使用AntV F2自定義圖表和legend交互
- 2022-08-17 C語(yǔ)言進(jìn)階練習(xí)二叉樹(shù)的遞歸遍歷_C 語(yǔ)言
- 2022-02-13 React中插入視頻(video-react),自動(dòng)播放
- 2022-09-25 注解@Autowired如何自動(dòng)裝配
- 2022-05-20 Spring Boot 整合流程引擎 Flowable,so easy
- 2022-09-19 Python?argparse?解析命令行參數(shù)模塊詳情_(kāi)python
- 2022-03-28 Android實(shí)現(xiàn)調(diào)取支付寶健康碼_Android
- 2022-09-14 Android?實(shí)現(xiàn)卡片堆疊錢包管理動(dòng)畫(huà)效果_Android
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支