1. 程式人生 > >[轉]報preDebugAndroidTestBuild——應用程式與測試應用程式版本不同的解決方案

[轉]報preDebugAndroidTestBuild——應用程式與測試應用程式版本不同的解決方案

每次開啟android studio時都會報題目的錯誤,對工程的執行並沒有實際影響,但由於看著BUILD FAILED幾個大字很不爽,就決定查下給解決掉。

為表示感謝或對知識的尊重,先將參考文獻列在前面

參考文獻:

http://keep.01ue.com/?pi=336339&_a=app&_c=index&_m=p

https://www.cnblogs.com/BlueFire-py/p/9058208.html        並非對該問題的解答,是對Gradle的解釋

問題現象:


解決方案:

在每個Module的build.gradle檔案中dependencies關鍵字下,新增一行程式碼。

configurations.all {  
        resolutionStrategy.force 'com.android.support:support-annotations:26.1.0'  
    }

然後,同步一下即可。

注:必須是該Project下所有的Module都需要這樣。

下面,是對第二篇參考文獻的“引用”

gradle-warpper.properties檔案:warpper包裝的意思,properties財產,所有權的意思。

gradle-wrapper:目的在於團隊開發過程中統一gradle版本號

這個檔案存在的意義在於:它可以啟動gradle內建的Wrapper task幫助我們自動生成wrapper所需的目錄結構

它自動生成的檔案是:

檔案中引數介紹:

實戰使用:當匯入別人的專案的時候,把自己常用專案的Gradle-wrapper.properties檔案替換掉別人的。

setting.gradle:工程樹,專案有多少個moudle,都會在這裡顯示。還有我們匯入的第三方依賴

groovy語法:咯

project 的 build.gradle檔案:主要四個標籤

buildscript:是用來宣告gradle指令碼自身需要的資源 { 依賴項dependencies,      第三方外掛和maven倉庫地址 repositories{ jcenter(),maven(),google()託管第三方外掛的平臺} }

ext:用於自定義屬性,咯

allproject:repositories{}這個用於多專案構建,為你所有的module提供第三方庫,為所有的專案提供共同的依賴包,在子專案可以配置自己的單獨的依賴包,和buildscript有區別,互相沒有關係

task clean:執行gradle clean命令時,執行此處的task,與Androidstudio的clean命令一樣,刪除build檔案

module的build.gradle檔案:

appley plugin提供外掛

apply  plugin 二進位制外掛

apply  from   應用指令碼外掛

android{}這個是Android外掛提供的一個拓展,讓我們自定義AndroidGradle工程

  compliesdkversion 編譯所依賴的AndroidSDK 版本

  buildTOOLversion 構建該Android工程所用的構建工具版本

  defaultconfig{}預設設定,這是一個ProdultFlavor,它允許我們根據不同的情況生成不同的app

    ndk{}多平臺編譯,生成so包的時候使用,包括四個平臺armeabi,armeabi-v7a ,x86,mips。使用第三方庫提供的sdk的時候,可能會附帶so庫

    sourcesets,原始碼合集是java外掛用來管理程式碼和描述資源的概念,比如告訴gradle關於jin的so包放在了app/libs路徑上,讓它編譯的時候自己去找。

dependencies{}:

  complie fileTree(include:[".jar"],dir:"libs")* :把本地libs資料夾下的jar包全部匯入。

  complie project()引入本地的一個moudle

  complie group:name:version 引入網上倉庫的依賴

匯入第三方類包的方法

匯入jar包:copy到lib目錄下即可(因為gradle裡面的第一句話)

匯入so包:so包應該放在相應模組下的src目錄下的main目錄下的jinLibs目錄(自己新建)

原理:

build.gradle中會有一些不會顯示的預設配置,比如下面的

 匯入第三方java類庫含原始碼包library:

1.先把從github上下載下來的library解壓,把library的資料夾所有複製到工程下邊(與主工程app同級,複製到檔案、工程都可)可以新建一個exact資料夾專門存放第三方庫

2.專案根目錄下settigs.gradle新增:include ':App',':viewpagerindicatorlibrary'    如果是exact目錄下  include ':App',': exact:viewpagerindicatorlibrary' 

3.app/build.gradle的dependencies裡邊新增:compile project(':viewpagerindicatorlibrary')  如果是exact目錄下 同上

4.開啟open Module Settings看到viewpagerindicatorlibrary 已經加入進來

5.還需在viewpagerindicatorlibrary目錄下新增一個build.gradle的檔案  跟主的app/build.gradle差不多

匯入arr:aar其實也是一個壓縮檔案,相比jar檔案,它能夠含帶res資原始檔等,aar檔案的引入方式有兩種:

1.將.aar檔案貼上到自己專案的libs目錄下

2.修改app/build.grdle配置檔案

新增:repositories flatDir { dirs 'libs' }}

這個是新增一個本地倉庫,並把libs目錄作為倉庫地址。

3.dependencies中新增一行:compile(name:'pullrefreshlibrary', ext:'aar')

匯入遠端庫:咯