1. 程式人生 > >AS離線開發和如何離線狀態下利用gradle來編譯android工程

AS離線開發和如何離線狀態下利用gradle來編譯android工程

首先,網上大部分的開發資料都是教我們如何去在android studio上怎麼離線開發。這個我也總結下流程。

1.點到preferences->build tools->gradle 下有一個 offline working 如圖


2.執行的時候會出現各種亂七八糟的問題。

簡單列下碰到的幾個問題和對應解決辦法:(注:我的工程是從eclipse轉換過來)

2.1 出現各種方法找不到的情況

  一般是由於方法數超過了65535 導致解決辦法:

  2.1.1defalultConfig中增加一句 multiDexEnabled true 。

  2.1.2然後對應在你繼承了的Application中覆蓋父類的方法attachBaseContext(Context con)方法。呼叫super方法之後需要呼叫 MultiDex.install(this).

 2.1.3 需要新增android-support-multidex.jar的依賴。

  具體解決辦法可以參考http://blog.csdn.net/yuanzeyao/article/details/41809423

2.2 出現9patch的圖片異常問題。

  解決辦法,直接在as裡面可以對9patch圖片進行直接修改,可以勾選show bad patches 看看這個九宮格的問題,實際上是因為9patch圖片轉過來,拉昇的屬性丟失,需要重新設定。

2.3 jni丟失

 解決辦法:在 sourceSets.main裡面設定 jniLibs.srcDirs = ['libs'] 這樣的話不用切換之前so所在檔案的位置。

2.4 還有一些小問題,基本上都是可以直接谷歌解決了。

到重點了:

離線編譯android工程

首先,gradle的編譯過程是相對簡單很多的。基本上AS下的gradle.build就已經做好了編譯工作了,我們要做的,就是把這個編譯環境配置好,用於離線打包。

線上的情況下,我們只需CD到對應主工程(Module)目錄,注意不是project目錄。這個目錄下面直接呼叫 gradle build(gradle的環境搭建相對簡單,直接跳過)。

但是在離線情況呼叫,就會出現

http://bbs.csdn.net/topics/391927983?page=1#post-401003857

connection to https://jcenter.bintray.com refused. 一看這個錯誤大概也知道這個過程是依賴聯網的。


然後還好有個大神出現,只需要gradle build --offline加上後面的離線引數即可執行離線編譯了。

但是又出現了一個問題。

不能解析在project下面build.gradle 配置的gradle外掛版本。很奇怪,為什麼在AS下沒問題,但是在離線編譯的時候就出現cannot resolve呢?

於是出現了

解決辦法1:

下載maven,配置好maven環境,搭建maven本地倉庫,將對應的jar釋出到本地倉庫,gradle.build指令碼中將本地路徑配置。

http://www.coderli.com/gradle-maven-local-repositories/ 

http://blog.csdn.net/mao520741111/article/details/48374367 

參考該博文。

http://wiki.jikexueyuan.com/project/gradle/dependency-management-basics.html wiki說明。

解決辦法2:

將對應的mavencentral() 調整為 mavenLocal之後,出現了在 某某資料夾下找不到某個檔案的提示。如圖


如果有外網的情況,可以呼叫一次線上build。這樣會在 c://users/xxx/下面生成一個.m2的隱藏資料夾,這樣可以將這個資料夾拷貝到內網對應的資料夾。

當然這個還是可能會出現某些檔案找不到的情況,只需要找到android studio中xxx\gradle\m2repository資料夾,拷貝對應的資料夾或者檔案到對應目錄。因為他編譯都是依賴你的AS來生成的。這樣就可以正常編譯了。

總結下,gradle大法確實好,但是用起來不是那麼簡單。還是得去看看關於gradle的各方面概念,最好那本書來看看,瞭解他的編譯過程都如何做的,這樣出現某些編譯問題也能夠及時解決。

相關推薦

AS離線開發如何離線狀態利用gradle編譯android工程

首先,網上大部分的開發資料都是教我們如何去在android studio上怎麼離線開發。這個我也總結下流程。 1.點到preferences->build tools->gradle 下有

圖文教你在eclipsegradle 打包Android

gradle其他好處就不多說,在android應用釋出的時候,如果要統計多個渠道,gradle 批量打包的好處就顯示出來了;下面介紹圖文來介紹 按eclipse的匯出時 選擇Android;如下圖 然後按下面一步一步往下點 歡迎加入QQ交流3群:317874559 點

Android逆向基礎筆記—Android NDK開發2之Windows的gcc手動編譯(交叉連編譯利Linux Ubuntu系統的交叉工具鏈手動編譯

一、交叉工具鏈 這些工具都在NDK的路徑下:E:\Android\android-ndk-r13\toolchains\arm-linux-androideabi-4.9\prebuilt\windo

在Windows系統利用Maven開發HBase

       現在Maven越來越火了,因此我這裡就以使用Maven來開發HBase為例,來說說如何進行操作。 第一步:在Windows系統安裝Maven        1.1  我這裡安裝的Maven版本是3.2.5的版本,大家可以去官網下載,如果不知道怎樣在官網下載的話

【ARM-Linux開發】【CUDA開發】【視訊開發】關於Linux利用GPU對視訊進行硬體加速轉碼的方案

最近一直在研究Linux下利用GPU進行硬體加速轉碼的方案,折騰了很久,至今沒有找到比較理想的硬加速轉碼方案。似乎網上討論這一方案的文章也特別少,這個過程中也進行了各種嘗試,遇到很多具體問題,以下便對之前所作的一些工作做一些總結和分享,省的時間長了自己也忘記了,也希望後來

檔案傳輸及離線訊息的獲取 離線訊息離線檔案的實現

1.檔案的傳送 開一個檔案選擇框,選中檔案後再呼叫下面的方法 public static void sendFile(XMPPConnection connection, String user, File file) throws XMPPException, Interr

切換不同的資料狀態佈局,包含載入中、空資料出錯狀態利用開源框架)

implementation 'com.github.Bakumon:StatusLayoutManager:1.0.4' 將要

在 Eclipse 利用 gradle 構建系統【轉】

在 Eclipse 下利用 gradle 構建系統 簡介:  構建系統時候常常要用到 Ant, Maven 等工具,對於初學者來說,它們還是過於複雜,上手還是需要時間的。本文將向讀者介紹一種全新的構建專案的方式 gradle,它簡單、上手快,能大大節省專案的時間

linux利用openssl實現證書的頒發(詳細步驟)

1、首先需要安裝openssl,一個開源的實現加解密和證書的專業系統。在centos下可以利用yum安裝。 2、openssl的配置檔案是openssl.cnf,我們一般就是用預設配置就可以。如果證書有特殊要求的話,可以修改配置適應需求。這樣必須把相關的檔案放到配置檔

window 利用gradle編譯volley原始碼

<span style="font-size:18px;">buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:

c#利用winAPI實現擴充套件屏的解析度設定、方向切換等

1、背景:頭顯裝置連線電腦作為擴充套件屏使用,由於顯示屏廠家的原因,拿過來初始臉上電腦的話是橫向的,需要手動控制去設定成縱向,這樣做成產品的話,體驗比較差; 在網上找到了一種方法利用 ChangeDisplaySettingsEx配合DEVMODE結構體來實現上述功能;  

在linux利用nohup後臺執行java程式

 雖然使java main正確執行,但是會佔據你的一個ssh視窗,如果要有多個java main同時執行,那麼你又要另啟動一個ssh視窗來去以類似的方法執行另一個java main,那麼有沒有更好的方法來解決這種需求呢

利用STM32CubeMX生成USB_HID_Mouse工程【添加ADC】(1)

page perf stm32cube ets lar hid data before variable 現在原來的基礎上添加ADC的功能。 現在(利用STM32CubeMX來生成USB_HID_Mouse工程)基礎上新增硬件 JoyStick Shield 遊戲搖桿擴展板

利用STM32CubeMX生成USB_HID_host工程

stm32 mage ges 技術分享 img deb 分享 nbsp es2017 修改時鐘(備註這邊使用25mhz的主晶振) 選擇debug_level等級為3 利用STM32CubeMX來生成USB_HID_host工程

Ubuntuffmpeg-4.0編譯android所需的so庫

網上教程很多,之前編譯過,現在時間比較充裕,重新編譯下,我這也是參考了很多地方,簡單記錄下 (之前配置過環境,如ndk等,這裡就不寫了) 1.下載、解壓ffmpeg-4.0 wget https://f

Android利用gradle同時編譯多包(測試環境地址、生產環境地址)

前言 小公司,專案有2套環境:一個測試環境,一個生產環境。測試會找客戶端要測試環境包或生產環境包,我覺得嫌煩,於是,同時編譯。 分析 首先,我們的專案中,生產環境和測試環境僅為string.xml中的兩個地址不通,其他程式碼都是相同的。 這個需求和多

03利用babel編譯”我們的指令碼檔案

第一步 在終端下進入專案根目錄,執行 npm init,一路回車下去 然後發現專案目錄下多了一個”package.json”檔案 第二步 安裝babel-cli sudo npm install -g babel-cli 安裝”編譯”外掛

Windows IDEA + Go 外掛 編譯Go工程

note:主要是編譯專案時的配置有點坑,記錄一下 Go安裝 雖然這個和百度的索引上那個被牆了的網址不一樣,但這個就是官方給的大陸地區連結。Windows直接下載msi檔案安裝,會自動設定好環境變數。 安裝完以後開啟命令列,輸入

linux 使用ndk-build編譯android使用的c++靜態庫

1)下載android-ndk-r4 下載地址 http://www.ideasandroid.com/android/sdk/android-ndk-r4-linux-x86.zip http://developer.android.com/sdk/ndk/overvi

Eclipse環境 使用Gradle進行編譯實現自動分包

標籤(空格分隔): MultiDex gradle安裝 到Gradle官網下載最新版本的Gradle,安裝; 將bin目錄所在位置新增到環境變數的path中; 工程轉化 在工程目錄右鍵 –>Export –> Generate