国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

將Eclipse工程轉(zhuǎn)Android Studio工程的步驟與注意事項(xiàng)

2019-12-12 01:36:29
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Gradle的基礎(chǔ)

想要將Eclipse轉(zhuǎn)為Android Studio項(xiàng)目,那么Gradle語(yǔ)法是必修課。此處引進(jìn)一篇文章,基礎(chǔ)就不寫(xiě)了,Gradle基礎(chǔ)

引言

目前,用 Android Studio 來(lái)開(kāi)發(fā) Android 項(xiàng)目已是大勢(shì)所趨,就連 Google 也已經(jīng)宣布了不再支持 Eclipse 。所以一些老的 Eclipse 工程轉(zhuǎn) Android Studio 工程也是有必要的。工程轉(zhuǎn)換有兩種:一種是兼容模式,即 Eclipse 和 Android Studio 都可以用的工程結(jié)構(gòu);一種是 Android Studio 的目錄結(jié)構(gòu)。這里先記錄下兼容模式的轉(zhuǎn)換方法。

一.從 Eclipse 中導(dǎo)出 Gradle 文件

首先保證 Eclipse 包含 Gradle 插件,選擇菜單 File->Export->Generate Gradle build files,

然后一路無(wú)腦 next ,勾選需要轉(zhuǎn)換的工程(如果有依賴工程,把依賴工程也勾選上),在 finish 之前最好勾選上 Force overriding of existing files ,以保證覆蓋掉工程中由于之前有過(guò)類似操作而存在的文件。

二.修改 gradle 文件參數(shù)

現(xiàn)在,工程中多出了幾個(gè) gradle 相關(guān)的文件。修改兩個(gè)地方為最新版本:

1.build.gradle。

找到

classpath 'com.android.tools.build:gradle:0.8.+'

改為

classpath 'com.android.tools.build:gradle:2.2.3'(目前最高版本)

2.gradle/wrapper/gradle-wrapper.properties。

找到

distributionUrl=http/://services.gradle.org/distributions/gradle-1.10-all.zip

改為

distributionUrl=http/://services.gradle.org/distributions/gradle-2.14.1-all.zip(目前最高版本)

三.導(dǎo)入 Android Studio

在 Android Studio 的 Welcome 界面選擇 import project(Eclipse ADT,Gradle,etc)

選擇工程,等待編譯完成。這時(shí)候,不會(huì)馬上編譯成功,需要耐心,根據(jù)編譯錯(cuò)誤信息修改錯(cuò)誤。常見(jiàn)的錯(cuò)誤有: jni 庫(kù)位置、構(gòu)建工具版本低、圖片檢查報(bào)錯(cuò)、Manifest 沖突、jar 包沖突等。

四.常見(jiàn)編譯錯(cuò)誤解決方法

1.jni 庫(kù)位置。在 build.gradle 中添加:

sourceSets { main { jniLibs.srcDirs = ['libs'] }}

2.構(gòu)建工具版本低。提高構(gòu)建工具版本,一般 Android Studio 都會(huì)有提示。

3.圖片檢查報(bào)錯(cuò)。把 .9 圖片放到 dawable 文件夾而不是 mipmap 文件夾;在 build.gradle 中添加:

aaptOptions { cruncherEnabled false useNewCruncher false}

4.Manifest 沖突。刪除重復(fù)的 uses-permission 權(quán)限;忽略 Manifest 資源值沖突:

在 manifest 根標(biāo)簽上加入:

然后,在 application 標(biāo)簽下添加:

tools:replace="android:icon, android:theme"(多個(gè)屬性用,隔開(kāi))

或者直接在 gradle 中添加:

useOldManifestMerger true

5.jar 包沖突。刪除 library 工程中與主工程沖突的 jar 包。

五.庫(kù)工程(Library)打 aar 包

如果工程中有依賴工程(即 Library 工程,Android Studio 中稱 Module 工程),那么最好將它打成 aar 包,以提高日常調(diào)試時(shí)的編譯速度。因?yàn)?Android Studio 每次編譯的時(shí)候,都會(huì)把項(xiàng)目下的所有工程都編譯一遍,這樣會(huì)浪費(fèi)一些不必要的時(shí)間。所以,如果不是特殊情況,最好將 Module 工程打成 aar 包來(lái)使用。那這個(gè) aar 怎么生成呢?

首先,當(dāng)我們做完前面的操作,程序都正常跑起來(lái)了之后。

在 Module 工程的 /build/outputs/aar/ 下可以找到編譯生成的 aar 包,把 aar 包拷到主工程的 /libs/ 下。

去掉根目錄下 settings.gradle 文件中原來(lái)工程的 include :

// include ':XXXXX'

將主工程中 build.gradle 文件的工程依賴關(guān)系,改為 aar 包依賴:

// compile project(':XXXXX')compile(name: 'XXXXX', ext: 'aar')

點(diǎn)擊右上角 Sync Now,等待 gradle 完成,這樣就 OK 了,是不是很簡(jiǎn)單!

Android Studio新手導(dǎo)入Eclipse項(xiàng)目注意事項(xiàng)

1. 在引入moudle的build.gradle中的apply plugin: 'com.android.library',標(biāo)識(shí)當(dāng)前的moudle是一個(gè)libary,而不是apply plugin: 'com.android.application'

2. 用Eclipse到處的Gradle,libary中的清單文件中如果有application節(jié)點(diǎn),請(qǐng)刪除,否則會(huì)報(bào)錯(cuò),因?yàn)榫幾g的時(shí)候gradle會(huì)找到兩個(gè)application節(jié)點(diǎn)。

<applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ></application>

3. 由于Android Stduio對(duì)于圖片格式要求比較嚴(yán)格,從Eclipse轉(zhuǎn)過(guò)來(lái)的情況下,一般都會(huì)報(bào)圖片格式錯(cuò)誤AAPT err(Facade for 1059284777): libpng error: Not a PNG file,那么請(qǐng)按下面說(shuō)明修改:

在APP的build.gradle下的android項(xiàng)中添加:

//放寬PNG圖片檢查條件aaptOptions.cruncherEnabled = false;aaptOptions.useNewCruncher = false;

4. 主工程和libary中如果有相同的jar,Eclipse中是不會(huì)報(bào)錯(cuò)的,而Android Studio中則會(huì)報(bào)類重復(fù)錯(cuò)誤,那么我們將主工程中和libary中重復(fù)的jar刪除即可。

5. 從Eclipse轉(zhuǎn)過(guò)來(lái)的Android Studio項(xiàng)目不會(huì)默認(rèn)添加so的路徑,能夠編譯成功,也能安裝成功,但就是啟動(dòng)報(bào)錯(cuò),可以看出so報(bào)錯(cuò),然后VM就掛掉了,說(shuō)明沒(méi)有找到so的路徑所在。在主工程的build.gradle中配置以下代碼即可,表示so庫(kù)的路徑在libs下,也可指定為其他路徑。

sourceSets {main {jniLibs.srcDirs = ['libs']}}


6. 引入本地jar推薦使用這種方式,不需要每添加一個(gè)jar都add一次。

dependencies {compile fileTree(dir: 'libs', include: '*.jar')}

7. 編譯ok后,運(yùn)行報(bào)錯(cuò):Could not find XXXX in APK; aborting.請(qǐng)按如下設(shè)置重新運(yùn)行。

File - Settings - Build,Execution,Deployment - Instant Run,去掉Enable Instant Run...邊上的鉤

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)武林網(wǎng)的支持。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 陇西县| 梅州市| 信丰县| 越西县| 阿荣旗| 恩平市| 奎屯市| 子洲县| 河曲县| 孟津县| 广宗县| 自治县| 商河县| 武川县| 阿城市| 扶余县| 永泰县| 长沙市| 汉源县| 普宁市| 冷水江市| 东方市| 舞钢市| 嘉禾县| 梨树县| 南部县| 宁都县| 枝江市| 孙吴县| 五华县| 临颍县| 札达县| 平乡县| 苏尼特左旗| 彝良县| 同仁县| 黔西| 汕尾市| 右玉县| 通化市| 宜都市|