gradle遇到的一些坑

來源:互聯網
上載者:User

標籤:des   android   blog   使用   io   檔案   ar   問題   div   

用 android studio 用的爽了,現在讓我去用 eclipse 簡直就是殺人!

但是畢竟因為用的人還是少數,所以項目中遇到的一些問題解決方案並不是很多,甚至沒有。打算自己的一些經驗記錄下來。

--------------------------------------------------------------------------------------------------------------

一、關於打包 jar ,官方宣稱 android studio 是不支援打包 jar 的,所以之前對接 unity 的時候遇到的問題就是 android studio 中寫好的項目然後得轉移到eclipse中打包(有點傻),後來才發現 app\build\intermediates\classes 目錄下都是已經編譯好的位元組碼檔案,所以……直接命令

jar -cvf xxx.jar *

不就好了嗎?然後需要注意的是 android studio 將 R類 的位元組碼檔案也編譯了進去,在對接 unity 的時候會出現因 android studio 跟 unity 產生的資源 id 不一致導致的 bug,故可將這些 R 相關的刪除,這樣就ok了。說到資源的問題,

 

二、unity 與 android 對接中導致資源錯亂的問題的解決辦法(巨大的坑,雖說與 gradle 無關,但都是我實際中一步步遇到的問題,還是寫在一起把)

前面已經說了,因為我們在使用 R.id.XXX 的時候其實是 ADT 自動給我們產生的一個 id ,我們引用這個 id 系統幫我們找到這個資源。所以當與 unity 對接時,官方推薦的方式是將 res 檔案夾一起放置到 android 路徑中,也就是說 unity 負責將資源重新分配 id,這樣我們的靜態代碼中的 id 引用的可能就不是我們所需要的那個資源了,所以解決辦法是不能使用靜態 R.id.XXX 擷取資源,我們可以使用

// 以前的寫法String desc = res.getString(R.id.description); // 現在的寫法String desc = res.getString(res.getIdentifier("description", "string", "com.mycompany.MyApp"));

這樣就是動態擷取相應的資源了,ok,問題解決。

 

三、坑爹的 unity 還是問題不斷,例如我的項目中某個自訂的 view 中的 ondraw 運行不對了在對接之後,死活找不出原因,這都是 unity 布下的坑,所以想為毛我要讓 unity 負責打包呢?後來自己在打包的時候意外發現了 build setting 中有 google android project 的選項,沒想到 unity 也可以直接 export android 的項目,這樣的話也就是說可以將自己的項目作為 lib 由 unity 匯出的項目引用或者是在我的 android 項目中引用 unity 的 lib,當然在我的嘗試中後者成功的打包運行了,也是我現在一直使用的方式,也就是可以將 unity 匯出的項目作為 library 項目匯入,然後在自己的 android 項目中引用這個 library 項目,具體怎麼操作,網上有很多,自行 google ,但有一個問題就是以 library 的方式可能會有 :app:dexDebug 的錯,也就是打包 jar 的時候出了問題,後來發現是因為項目中和 library 中同時都而且不得不引用了同一個 jar (unity提供的用於 android 相關的工具),所以解決辦法就是屏蔽其中的某一個 jar,

configurations {    all*.exclude jar: ‘libs/classes.jar‘}

在自己的 android 項目中的 build.gradle 中加入這一段應該就可以解決了。(不熟悉 gradle 的文法這對我來說是個大坑)

 

四、建議的 unity android 打包方式

如果涉及到很多資源由其建議!而且可以在 android 這邊進行 debug,前面說的 unity 匯出 android 的項目後,將其中的 assests 直接複製到 src/main 下(android studio), 再將 unity 項目中引用的 jar 也放置到 assests 的 libs 中,然後在 main 中建立一個 jniLibs 檔案夾,將 unity 匯出的項目中 libs/armeabi-X 整個檔案夾 copy 進去。這樣就沒問題了,然後該怎麼對接跟其他的一樣。

 

五、unity 到處都是坑,標題應該改為 unity 遇到的一些坑才是,哈哈哈哈

gradle遇到的一些坑

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.