eclipse遷移到Android Studio 問題記錄

來源:互聯網
上載者:User

標籤:

最近從eclipse遷移了一個老項目到Android Studio,遷移的原因嘛,當然是65535的問題。遷移的過程中從編譯到打包,踩了一堆坑,在此記錄一下,希望能幫到,同樣被坑的同行

如何匯入

推薦使用直接匯入ADT的方式來進行匯入工作,這樣會自動為你添加依賴,構建好代碼的架構

選擇好eclipse的工程和要匯入的目標工程後,直接next -> finish 選項用預設選項

靜靜的祈禱,並等待匯入結束

開始慢慢填坑路

AS構建項目完成後,報錯是肯定的,先來看看第一個錯誤

命名不規範


這個錯誤很好理解,命名不規範的問題,按照要求改就可以了

.9不符合要求

.9不符合規範是一個很普遍的情況,eclipse對於.9的要求並不像 Android Studio 中那樣嚴格

eclipse項目中經常有這種 .9,四邊並沒有都沒有給像素

這裡我的處理方式 就是重新畫.9,給他加上邊線

libpng warning iCCP & libpng Error : Not a Png file

Not Png file 還好說找到檔案格式不對的檔案改尾碼就可以了,但是如果項目中很多圖片找不到怎麼辦呢? 後面再告訴你們。

還有libpng warning iCCP 就比較坑了,這個錯誤直接報到V7包裡面的資源,問題的原因,我也比較費解。如果誰知道希望留言告知一下

我的解決方案就比較暴力了,在主專案的build.gradle 檔案中做出如下配置

關鍵配置: aaptOptions.cruncherEnabled = false aaptOptions.useNewCruncher = false
就可以直接忽略掉libpng的 2個錯誤

AndroidManifest.xml merge衝突

eclipse中經常使用的庫工程,同樣可以在Android Studio中使用。在eclispe中庫工程的AndroidManifest.xml,與主工程的AndroidManifest.xml有相同的配置的時候是不會報錯的,但是在Android Studio 中這些都是不允許的

許可權的重複聲明

需要重複資料刪除的許可權

application 節點 重複的配置

allowBackup 重複設定

applcation 重複設定

解決方式有2種,刪除一個工程的設定,一般是刪除庫工程,第二種就是與編譯器的建議一樣寫tools : replace

這裡的tools 需要聲明一下才能使用

V4 包的錯誤

找不到類原因是V4包沒有,但是我的ec項目中是有v4包的,至於匯入後為什麼沒有了,我也不是很明白

build.gradle檔案中設定依賴 compile ‘com.android.support:support-v4:23.2.1‘ 就可以了

運行時記憶體不夠的問題

這個錯誤其實是JVM的錯誤,載入的內容過多,記憶體不夠。
解決方案,build.gradle中配置

    dexOptions {        javaMaxHeapSize "4g"    }

這個配置一定要寫在 android{} 結點裡面

64K的問題

64k的問題直接採用的官方的方案,設定起來還是很簡單的
添加依賴 : compile ‘com.android.support:multidex:1.0.1‘
修改Application

    @Override    protected void attachBaseContext(Context base) {        super.attachBaseContext(base);        MultiDex.install(this);    }

最後到此我的項目就可以運行了 BUILD SUCCESS !!! 完結撒花~~~~

==========================================分割線

在我以為已經完工的時候,我嘗試了一下打包,結果。。。 我再次懵逼了

打包的錯誤

我這裡的打包時打簽名的正式包,不是簽名的話,下面的錯誤是不會出現的。

layout.xml 檔案中自訂屬性錯誤

以前的項目中layout.xml自訂屬性聲明是直接跟包名的
xmlns:app="http://schemas.android.com/apk/res/com.xxx"
但是打包的時候會跟你報錯,Adnroid Studio 中建議寫成 res-auto

這種警告層級的東西,在打包時會成為錯誤爆出來

Error: Expected resource of type styleable [ResourceType]

這個錯誤就比較奇葩了,我的申明都是沒問題的。而且在編譯期間這個錯誤居然不會出現,
只有打包的時候才會出現,我又是吐了一口老血。所幸這個錯誤解決方案還是比較簡單,
那就是直接過濾掉。在出問題的類上加上註解
@SuppressWarnings("ResourceType") 就可以過濾掉了。

ValidFragment錯誤

也是一個比較費解的錯誤

直接改吧,在fragment上給上註解 @SuppressWarnings("ValidFragment") 同樣是過濾掉這個錯誤

MissingTraslasion 錯誤

這個錯誤是在String.xml 裡面沒有設定是否能夠被翻譯的配置造成,但是我們應用一般不用給這個設定,也沒見過報錯啊。內鬼就出在友盟的工程中有設定 values-zh 導致我們自己的工程也被影響要設定翻譯配置。
解決方案,直接在出問題的String.xml中添加配置

<?xml version="1.0" encoding="utf-8"?><resources  xmlns:tools="http://schemas.android.com/tools"  tools:ignore="MissingTranslation" ></resources>

HOlY SHIT!!!!!

作者已經吐血了

eclipse遷移到Android Studio 問題記錄

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.