書小宅之android——項目移植

導入項目

Close Project關閉打開的項目,進入如下界面:
在這裏插入圖片描述
選擇Import project(Gradle,Eclipse ADT,etc)【非Open an existing Android Studio project】,打開指定項目。

檢查/修改配置

1、檢查File->Project Structure->SDK Location下JDK location版本和在系統控制檯(cmd)中輸入javac -version查詢得到的jdk的版本是否一致,如若不一致則進行修改。

2、File->settings->Build,Execution,Deployment->Build Tools->Gradle->Service directory path指定到gradle的具體版本的詳細目錄。

3、Android studio運行的時候彈出edit configuration,然後Logcat裏面提示SDK沒有配置好:File–>project structure

4、項目目錄下gradle->build.gradle

buildscript {
    repositories {
        ...
        google()//如果不添加將會導致某些官方依賴下載不了
    }
}

5、運行時出現Edit Configuration,填好name和當前項目對應的module後仍然有紅叉,這是因爲在app的build.gradle文件中沒有配置簽名文件信息。
應該爲release編譯配置簽名信息,debug不需要配置是因爲debug有默認簽名信息,build.gradle加上這一段:

    signingConfigs {
        release {
            keyAlias 'test'
            keyPassword 'test'
            storeFile file('D:/keystores/test.jks')
            storePassword 'test'
        }
    }

    buildTypes {
        debug {
            applicationIdSuffix ".debug"
            minifyEnabled false
            zipAlignEnabled false
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        release {
            minifyEnabled true
            zipAlignEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
    }

常見錯誤

Error: AndroidManifest.xml doesn't exist or has incorrect root tag
Reason: 1、拷貝或移動工程文件夾導致Android Studio加載的路徑不對。
        2、對跨語言、跨Module項目進行修改後,需要同步。
Solve:  1、file->settings->Menus and Toolbars->搜索Gradle->Syn project with gradle files
        (重新按照Gradle文件同步引用庫,根據清單文件重新配置一次。)
        2、file->settings->Menus and Toolbars->搜索invalidate Caches/Restart
        3、File->Sync with File System:同步系統文件
        4、Androidmanifest.xml文件有問題。

android studio在gradle sync時下載wrapper的某個版本(即gradle-wrapper.properties裏指定的distributionUrl),如若沒有對應的目錄則創建它,並生成gradle-5.4.1-all.zip.lck的空文件,並下載 gradle-5.4.1-all.zip.part,當下載完之後,會把.part文件更名爲gralde-5.4.1-all.zip並解壓成gradle-5.4.1文件夾,刪除.part文件,生成gradle-5.4.1-all.zip.ok,告訴android studio工作完成,如若網絡不通則會一直sync。

如若想要跳過android studio下載的過程,則可根據上述規則手動下載。

AndroidStudio gradle sync同步系統文件更新Gradle失敗時,手動下載的方法:
在Project目錄結構中,依次展開gradle -> wrapper,然後雙擊“gradle-wrapper.properties”文件,找到distributionUrl=https://services.gradle.org/distributions/gradle-5.4.1-all.zip。
其中https://services.gradle.org/distributions/是下載鏈接地址,gradle-5.4.1-all.zip是需要下載的版本。
下載對應的版本,解壓替換C盤用戶目錄.gradle\wrapper\dists\gradle-5.4.1-all\3221gyojl5jsh0helicew7rwx下的.zip文件,重啓android studio。
順序:下載grable插件壓縮包後,先修改gradle-wrapper.properties文件,再次sync,之後就會在dists文件夾下生成指定文件夾,然後將壓縮包解壓到該文件夾下,重新執行gradle sync。

Error: Logcat裏面提示SDK沒有配置好
Solve: File-->project structure->build tools version
Warning: Configuration 'androidTestCompile' is obsolete and has been replaced with 'androidTestImplementation'。
Reason: 新版AndroidStudio3.1.2以上編譯的時候會檢查 項目依賴第三方庫是否是否使用了舊版的 依賴方法“compile” ,如果項目中存在大量“complie”依賴的第三方庫,會導致編譯失敗。
Solve: 將complie改成 “implementation”。
Error: Plugin with id 'com.android.application' not found。
Reason: 環境太新了,而工程太老。
Solve:
buildscript {
    repositories {
        mavenCentral() // or jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'   //last version Jan 2016
    }
}
Error:Could not find method implementation() for arguments [directory 'libs'] on root project 'myphototest'.
Solve:build.gradle裏面的implementation改成compile。
發佈了56 篇原創文章 · 獲贊 26 · 訪問量 5299
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章