日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android studio导入eclipse项目各种问题,eclipse项目导入android studio 各类问题及解决方法...

發(fā)布時(shí)間:2024/7/23 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android studio导入eclipse项目各种问题,eclipse项目导入android studio 各类问题及解决方法... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

隨著時(shí)間的推移,技術(shù)的推進(jìn),開發(fā)android的IDE,逐漸由 eclipse轉(zhuǎn)移到android studio,但… ?我們的拖延癥是很嚴(yán)重的,只要eclipse能用一天就絕不遷移

,只到有一天,項(xiàng)目越來越大,引入的第三方庫越來越多,超過了android的最大限制65535,

不得不使用拆包方式,不得不遷移到android studio

, 遷移項(xiàng)目過程中遇到很多坑,在此進(jìn)行總結(jié),并給大家提供參考。

一、大概介紹eclipse項(xiàng)目導(dǎo)入android studio過程

1. ?點(diǎn)擊Import project (Eclipse AD, Gradle,etc.) 這一項(xiàng)

2. ?選擇項(xiàng)目里的主工程,然后點(diǎn)擊 Ok

3. 一路點(diǎn)擊next,最后導(dǎo)入完成

導(dǎo)入完成后,會自動生成?import-summary.txt文件,里面寫明了遷移后項(xiàng)目目錄、文件位置等的一些變化,可以仔細(xì)看看

二、遷移問題匯總

導(dǎo)入到android studio后,并非一帆風(fēng)順,而是各種坑坑洼洼~

文中 android studio 簡稱AS

1. 圖片命名問題

AS對圖片命名要求比eclipse嚴(yán)格,圖片名稱只能有 小寫字母、數(shù)字及下劃線組成;

報(bào)錯信息:

F:\kydd\yzone\yzone\src\main\res\drawable-hdpi\common_listview_headview_red_arrow.png.png

Error:Error: '.' is not a valid file-based resource name character: File-based resource names must contain only lowercase a-z, 0-9, or underscore

問題原因: 圖片名稱為:common_listview_headview_red_arrow.png.png,圖片名包含了 '.',所以報(bào)錯

解決方法:重命名圖片,去掉一個(gè) .png

2. ?找不到 support.v4包

報(bào)錯信息:

F:\kydd\yzone\iMKit\src\main\java\io\rong\imkit\CallEndMessageItemProvider.java

Error:(8, 30) 錯誤: 程序包android.support.v4.app不存在

Error:(193, 19) 錯誤: 找不到符號

符號: ? 類 FragmentActivity

位置: 類 CallEndMessageItemProvider

Error:(185, 137) 錯誤: 無法訪問DialogFragment

找不到android.support.v4.app.DialogFragment的類文件

Error:(186, 13) 錯誤: 方法不會覆蓋或?qū)崿F(xiàn)超類型的方法

解決方法:引入新版support.v4

3. .9圖錯誤

AS中,.9圖必須是規(guī)范的.9圖,否則就會報(bào)錯;

(1)如果一張圖不是.9圖,則圖片名稱中不要包含.9;

(2).9圖必須對四個(gè)邊都進(jìn)行了描點(diǎn),AS才能進(jìn)行識別;

報(bào)錯信息:

Error:java.lang.RuntimeException: CrunchingCruncher chat_to_bg_normal.9.png failed, see logs

或者:

Error:java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException:

Error:Execution failed for task ':yzone:mergeDebugResources'.

> Error: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException:

解決方法:

(1)如果不是.9圖,則把名稱中的.9去掉,如果是.9圖,那么重新制作一下

(2)也可以把圖片合法性檢查關(guān)閉,在build.gradle增加如下(我測試了這個(gè)好像不起效)

android {

...

aaptOptions.cruncherEnabled = false

aaptOptions.useNewCruncher = false

...

}

4, 權(quán)限、activity在 manifest.xml文件中重復(fù)申明

報(bào)錯信息:Error:Execution failed for task ':yzone:processDebugManifest'.

> Manifest merger failed with multiple errors, see logs

詳細(xì)log:

F:\kydd\yzone\yzone\src\main\AndroidManifest.xml:93:5-69 Warning:

Element uses-permission#android.permission.FLASHLIGHT at AndroidManifest.xml:93:5-69 duplicated with element declared at AndroidManifest.xml:91:5-69

F:\kydd\yzone\yzone\src\main\AndroidManifest.xml:773:9-777:55 Error:

Element activity#io.rong.imkit.widget.provider.TakingPicturesActivity at AndroidManifest.xml:773:9-777:55 duplicated with element declared at AndroidManifest.xml:674:9-677:52

F:\kydd\yzone\yzone\src\main\AndroidManifest.xml Error:

Validation failed, exiting

解決方法:

在manifest.xml文件中,去掉重復(fù)的即可, AS的檢查比eclipse嚴(yán)格

5. 同一項(xiàng)目,有多個(gè)子module時(shí),在兩個(gè)或以上module中聲明同一個(gè)meta-data,且值不同時(shí),報(bào)錯

報(bào)錯信息: Error:Execution failed for task ':yzone:processDebugManifest'.

> Manifest merger failed : Attribute meta-data#RONG_CLOUD_APP_KEY@value value=(xxxxxxxx) from AndroidManifest.xml:560:13-42

is also present at [yzone:iMKit:unspecified] AndroidManifest.xml:163:13-42 value=(yyyyyyyyyyy).

Suggestion: add 'tools:replace="android:value"' to element at AndroidManifest.xml:558:9-560:45 to override.

解決方法:

(1)在其中一個(gè)module鐘刪除,保留正確的那個(gè);

(2)或者在主module中的meta-data中,加上?'tools:replace="android:value",如下:

6. 最低版本號設(shè)置過低,報(bào)錯

我們的項(xiàng)目中使用了個(gè)視頻播放的第三方庫,最低版本號支持14,而我們的build.gradle文件中,最低版本號設(shè)置了13,固報(bào)錯

報(bào)錯信息:Error:Execution failed for task ':yzone:processDebugManifest'.

> Manifest merger failed : uses-sdk:minSdkVersion 13 cannot be smaller than version 14 declared in library [com.github.danylovolokh:video-player-manager:0.2.0] F:\kydd\yzone\yzone\build\intermediates\exploded-aar\com.github.danylovolokh\video-player-manager\0.2.0\AndroidManifest.xml

Suggestion: use tools:overrideLibrary="com.volokh.danylo.video_player_manager" to force usage

解決方法:將最低版本號改為要求的即可

defaultConfig {......minSdkVersion14targetSdkVersion23//只能用23,否則融云SDK在android7上無法連接;如果要使用大于23,則需要加入sqlite.so等包......}

7.?compileSdkVersion 設(shè)置過低

報(bào)錯信息:

F:\kydd\yzone\yzone\build\intermediates\res\merged\debug\values-v23\values-v23.xml

Error:(3) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.

Error:(18) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.

Error:(3) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.

Error:(18) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.

Error:Execution failed for task ':yzone:processDebugResources'.

> com.android.ide.common.process.ProcessException: Failed to execute aapt

解決方法:compileSdkVersion 設(shè)置為24

android {

......

compileSdkVersion 24

......

}

8. android6.0及以上沒有httpclient,報(bào)錯

報(bào)錯信息:

Error:(9, 30) 錯誤: 程序包org.apache.http.client不存在

Error:(218, 14) 錯誤: 找不到符號

符號: 類 ClientProtocolException

Error:(219, 29) 錯誤: 無法訪問HttpRequestBase

找不到org.apache.http.client.methods.HttpRequestBase的類文件

Error:(252, 29) 錯誤: 無法訪問HttpEntityEnclosingRequest

找不到org.apache.http.HttpEntityEnclosingRequest的類文件

Error:Execution failed for task ':yzone:compileDebugJavaWithJavac'.

> Compilation failed; see the compiler error output for details.

解決方法:

在build.gradle中添加如下配置

android {

......

//android6.0 沒有httpclient了,如用android23編譯,需要加上該行,android23以下的不需要加這行

useLibrary 'org.apache.http.legacy'

......

}

9. 項(xiàng)目函數(shù)數(shù)超過65535

報(bào)錯信息:

Error:Error converting bytecode to dex:

Cause:com.android.dex.DexIndexOverflowException: Cannot merge new index 65569 into anon-jumbo instruction!

Error:Execution failed for task':yzone:transformClassesWithDexForDebug'.

>com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:java.lang.UnsupportedOperationException

解決方法:build.gradle增加如下配置

android {

defaultConfig {

...

//支持多個(gè)dex文件的編譯

multiDexEnabled true

...

}

}

dependencies {

...

compile 'com.android.support:multidex:1.0.1'

...

}

查看每個(gè)包函數(shù)數(shù)的工具:https://github.com/mihaip/dex-method-counts

查看每個(gè)包的函數(shù)數(shù),從而著手優(yōu)化,哪些是廢棄代碼可以刪掉,解決超過65535限制的問題,但如果代碼無法再優(yōu)化了,就只能采用上面的 multiDex打包了

總結(jié)

以上是生活随笔為你收集整理的android studio导入eclipse项目各种问题,eclipse项目导入android studio 各类问题及解决方法...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。