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 下有
圖文來教你在eclipse下用gradle 來打包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工程
Ubuntu下ffmpeg-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