由于公司項目需要多包名APK的支持溉箕,所以把公司的項目從eclipse遷移到了Android Studio.
以下是一些遷移經(jīng)驗:
遷移準(zhǔn)備
- Android Studio對代碼檢查比較嚴(yán)格,代碼中如果存在一些重復(fù)ID和重復(fù)String暴区,盡量都使用lint處理掉懦趋。
- Android Studio對于JAR包重復(fù)會導(dǎo)致編譯失敗晾虑,如果引用的項目中有相同的jar包,先清理掉仅叫,只保留一份帜篇。
開始遷移
目前Android Studio支持兩種方式遷移
- 如果想保持原有的目錄結(jié)構(gòu),
在eclipse繼續(xù)開發(fā)惑芭,我們采用通過eclipse導(dǎo)出gradle文件的方式坠狡,
在Studio中再import gradle文件的方式加進(jìn)來 - 如果不準(zhǔn)備保留原有結(jié)構(gòu),直接用Android Studio打開eclipse項目遂跟,會提示遷移逃沿,該方式是通過拷貝的方式,新生成一份新結(jié)構(gòu)的代碼幻锁。
完成遷移
在導(dǎo)入gradle文件后凯亮,每個Module都有一個build.gradle文件,
在setting.gradle中會include所有需要Module哄尔。
導(dǎo)入完成后假消,嘗試編譯運行一下,首次運行編譯較慢岭接,需要耐心等待富拗。
lint配置
Android Studio中的Lint檢測需要在build.gradle中配置臼予,在Settings里面修改并不能生效,如果想暫時忽略的話啃沪,可以加入
android{
lintOptions {
abortOnError false
}
}
JNI問題
Android Studio對eclipse導(dǎo)入的項目粘拾,打包時會少打入so文件,需要在Gradle的sourceSets加入
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
配置多渠道打包
- 第一步 在AndroidManifest.xml里配置PlaceHolder
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" />
- 第二步 在build.gradle設(shè)置productFlavors
android {
productFlavors {
xiaomi {}
_360 {}
baidu {}
wandoujia {}
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
}
支持多包名APK
支持多包名比較簡單创千,比如我新增一個google的渠道包,
在其中指定一個特殊的packageName
android {
productFlavors {
google {
packageName "com.example.google"
versionCode 1
}
}
}
本文作者: 陽春面
本文出處:http://www.aswifter.com/2015/06/12/eclipse-to-android-studio/
轉(zhuǎn)載請在開頭注明本文出處缰雇。
歡迎關(guān)注我的微信公眾號,分享Swift開發(fā)追驴,Android 開發(fā)和互聯(lián)網(wǎng)內(nèi)容
微信號:APP開發(fā)者