Android Studio導入Eclipse項目和一些常見的問題


Android Studio版本

Eclipse項目工程:一個主工程,一個Emojicon依賴庫。

有兩種方式導入Eclipse工程:

1、兼容Eclipse

2、全新的Android Gradle Project

Google推薦用全新的方式,所以此處不介紹兼容模式導入。

請先關閉Android Studio當前的Project,否則你看不到Import Project。

選擇“Import project(Eclipse ADT, Gradle, etc.)”,定位到你所需要導入的工程的主目錄。由於主目錄和Emojicon有依賴關系,Android Studio會自動關聯進來。然后指定一個保存的目錄,點擊Next。

默認情況下,下面的選項會打上勾(如果沒有勾上,手動勾上),直接Finish就行了。

一段時間轉換后,你將看到以下的結構

我把主工程的名稱隱藏了,此時可以看到,Emojicon確實導進來了。不過Emojicon下的java目錄是我后面加進來的,默認導入時這個文件夾不存在,為什么?往下看。

Android Studio導入完畢后,會默認在窗口中打開這個import-summary.txt文件,里面記錄了導入的一些注意事項。這個文件有幾個需要注意的節點,如下:

Manifest Merging

Ignored Files

Replaced Jars with Dependencies

Manifest Merging中的文字如下,也就是描述你的清單文件,基本上不用管。

Your project uses libraries that provide manifests, and your Eclipse
project did not explicitly turn on manifest merging. In Android Gradle
projects, manifests are always merged (meaning that contents from your
libraries' manifests will be merged into the app manifest. If you had
manually copied contents from library manifests into your app manifest
you may need to remove these for the app to build correctly.

Ignored Files,這個部分很重要。它表示Android Studio在導入項目的時候把這些文件忽略了,如果需要的話,你得手動拷貝進來。因為主工程依賴Emojicon,所以把這個文件拷貝到相應的位置即可。

The following files were *not* copied into the new Gradle project; you
should evaluate whether these are still needed in your project and if
so manually move them:

From Emojicon:
* .gitignore
* java\
* java\com\
* java\com\rockerhieu\
* java\com\rockerhieu\emojicon\
* java\com\rockerhieu\emojicon\EmojiAdapter.java
* java\com\rockerhieu\emojicon\EmojiconEditText.java
* java\com\rockerhieu\emojicon\EmojiconGridFragment.java
* java\com\rockerhieu\emojicon\EmojiconHandler.java
* java\com\rockerhieu\emojicon\EmojiconSpan.java
* java\com\rockerhieu\emojicon\EmojiconTextView.java
* java\com\rockerhieu\emojicon\EmojiconsFragment.java
* java\com\rockerhieu\emojicon\emoji\
* java\com\rockerhieu\emojicon\emoji\Emojicon.java
* java\com\rockerhieu\emojicon\emoji\Nature.java
* java\com\rockerhieu\emojicon\emoji\Objects.java
* java\com\rockerhieu\emojicon\emoji\People.java
* java\com\rockerhieu\emojicon\emoji\Places.java
* java\com\rockerhieu\emojicon\emoji\Symbols.java

Replaced Jars with Dependencies,提示你原來的jar包在Android Studio項目中會以何種方式存在。

The importer recognized the following .jar files as third party
libraries and replaced them with Gradle dependencies instead. This has
the advantage that more explicit version information is known, and the
libraries can be updated automatically. However, it is possible that
the .jar file in your project was of an older version than the
dependency we picked, which could render the project not compileable.
You can disable the jar replacement in the import wizard and try again:

android-support-v4.jar => com.android.support:support-v4:22.2.1

以前的libs文件夾哪里去了呢?

右擊你的Module,Open Module Settings,顯示如下:

其實Android Studio可以添加在線的庫和jar,看到Maven Central字樣了吧?相應的Jar會按需下載。

至此,項目可以build了。想運行成功,還沒那么容易。

Error:duplicate files during packaging of APK ........

說是duplicate files copied in APK META-INF/NOTICE.txt

duplicate files copied in APK META-INF/LICENSE.txt

解決辦法:在你的module下的build.gradle中的android節點中添加packagingOptions

android {
    ……

    packagingOptions{
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/LICENSE.txt'
    }
}

還有一個錯誤提示:Manifest merger failed with multiple errors, see logs

Suggestion: add ‘tools:replace=”android:icon”‘ to <application> element at AndroidManifest.xml:24:5 to override

原因:Android Studio默認使用Manifest Merger Tool,如果Library項目也定義了與主項目相同的屬性(如默認生成的android:icon, android:theme),則會合並失敗。

解決1:在AndroidManifest.xml節點manifest中引入

xmlns:tools="http://schemas.android.com/tools"

然后在application節點添加

tools:replace="android:icon"

或需要屏蔽theme,中間用逗號隔開。

tools:replace=”android:icon, android:theme”

解決2:在build.gradle根標簽上加上useOldManifestMerger true,不過在Android Studio 2.0中提示找不到這個useOldManifestMerger ,不知是改進過了還是用了其它的字段(此法有問題,有誰知道為什么么?)。

android { 
    useOldManifestMerger true 
}

請參考官方介紹:Manifest Merger

順利的話,基本上就是這兩個問題,然后就可以run了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM