android studio 和eclipse都比較臃腫,bug一堆,個人都不喜歡用。但谷歌官方指定as(android studio)我也就開始了as上的開發。我一直被依賴問題整的si去活來,今天在編譯 https://github.com/4455jkjh/Apktool-android,一個安卓上的比較強大的反bian譯軟件,我的as是最新版,變易又遇見了在這個問題,在此記錄一下排錯技巧。本人不是專業安卓程序員,難免描述出錯,不對或不妥的地方請大佬在評論區批評指正。
要想理解該文就要簡單說說as是如何導入並編譯一個軟件的app出來的,首先是導入在github下載的文件根目錄項目,導入后as會自動的用gradle同步該項目依賴等等環境問題,這一步其實就是在依據配置文件自動還原出作者在開發時所用到的環境。有時不會自動開啟,需要手動同步一下。是不是在同步看左下角有個進度條,點擊進度條查看詳情,沒有就是沒有自動同步。在同步完成后會有提示成功同步。之后就是編譯apk階段,注意如果沒有同步成功是不會出現編譯apk的按鈕的,這點很重要。
編譯時發生的依賴報錯有兩種可能,一種是網絡問題,這個也是主要原因。身處郭內,有一我稱之為柏林牆的東西。只要你想出郭訪問外。面的世界,就要接受檢差,這一點我可以理解,不理解的是為什么一個純技術類的網站,也要該動作。總而言之,這個東東會jie斷你正常的訪問連接,或者故意拖延你的訪問鏈接造成網絡超時,致使你無。法·正·常·上·網,可能還有其他手段,我不得而知。要想突破柏林,就要給電腦設置帶·里,傳統的方法是npv技術,還有目前最流行的s5r技術,我之前介紹過,設置起來比較方便。s5r的接點用百毒,谷鴿都可以瘦到。今天我講的是as如何突破柏林,首先確保s5r軟件使用正常,接點高速穩定。然后在s5r軟件設置里有個允許本地袋里打開,端口選擇默認即可。接下來打開as的全局設置,file-》setting,找 界面與行為 下的 系統設置 下的 http ,選中手動配置,選http,地址填入127.0.0.1,端口1080,點擊應用和確定。然后在該設置界面下有個按鈕叫 檢茶鏈接,填入一個被詛咒的鏈接,測試顯示通過就說明成功了。第二種是因為依賴太舊或者源太舊。一個程序看似依賴一個庫但這個庫就有可能依賴一堆東西,我這個app就依賴classpath 'com.android.tools.build:gradle:1.+',意思是gradle的1.x版本過於陳舊且使用的源是jcentral()這個源里的gradle也太舊找不到我要的gradle。所以打算離線下載個gradle的最新版本,注意為什么要離線的方式下載,因為柏林太meng,及時有s軟件也無法下載該軟件,必須這樣做,下載安裝好后讓該app依賴這個版本。在把原來的舊且不穩定的源改為國內阿里源。這里要修改兩個文件,我是這樣配置的:
build.gradle文件,修改的方法如下,你可以照着我的修改,但無需一模一樣:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
//jcenter()
maven { url 'https://maven.aliyun.com/repository/public/' }
maven { url 'https://maven.aliyun.com/repository/jcenter/'}
maven { url 'https://maven.aliyun.com/repository/google/'}
mavenLocal()
mavenCentral()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
//jcenter()
maven { url 'https://maven.aliyun.com/repository/public/' }
maven { url 'https://maven.aliyun.com/repository/jcenter/'}
maven { url 'https://maven.aliyun.com/repository/google/'}
mavenLocal()
mavenCentral()
}
}
在gradle-wapper.properties修改成最新的gradle
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
這兩個文件修改好后就可以重建依賴關系了,在 文件 -》用gradle同步項目選項 點擊它就開始自動同步了。我這個app這兩個問題都遇到了,照做同步完成后就解決了。還有這個同步只是在第一次是非常慢,在同步成功的情況下第二次打開就會非常快。