| 目錄(?)[+] |
將一網(wǎng)友的 XMPP 代碼從 ADT 轉(zhuǎn)到 AS 時,發(fā)現(xiàn)其使用了第三方類庫,源碼放在了 lib 下,直接在 AS 中 Import project,第三方類庫并沒有自動導(dǎo)入進來,看來需要自己動手了。
項目的目錄結(jié)構(gòu)如下:
XMPP$ ls
app build.gradle gradlew import-summary.txt XMPP.iml
build gradle gradlew.bat local.properties settings.gradle
將第三方源碼 qqEmoji-lib 拷到此目錄,修改 settings.gradle 增加此 lib:
include ':app',':qqEmoji-lib'
修改 app 下的 build.gradle,在 dependencies 內(nèi)加入:
dependencies {
compile project(':qqEmoji-lib')
...
在 qqEmoji-lib下 新建 build.gradle 文件,內(nèi)容參考如下:
apply plugin: 'android-library'
android {
compileSdkVersion 19
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 8
targetSdkVersion 18
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
}
}
}
dependencies {
compile 'com.android.support:appcompat-v7:19.1.0'
//compile 'com.android.support:support-v4:19.1.0'
}
gradle 的配置內(nèi)容情參考最后第二個鏈接。
此時項目的結(jié)構(gòu)見下圖:
http://wiki.jikexueyuan.com/project/android-actual-combat-skills/images/12-1.png" alt="fig.1" />
此時編譯,通過,導(dǎo)入成功!
這就簡單多了,直接將 jar 包拷貝到 app/libs 下,然后在 app 下的 build.gradle 中添加此 jar 的依賴。如下:
dependencies {
compile 'com.android.support:support-v4:19.1.0'
compile files('libs/libammsdk.jar')
compile files('libs/universal-image-loader-1.8.6-with-sources.jar')
compile files('libs/YoumiSdk_v5.00_2015-01-08.jar')
}
通常來說,我們調(diào)用第三方的 so 庫是不需要額外工作的,只需將其放入指定目錄,然后在 Java 文件中 load 即可。
比如我引用之前《第一個 NDK 程序》中編譯出的 libFirstLib.so,將其放到 app/src/main/jniLibs/armeabi/ 下,在源碼中引用:
static {
System.loadLibrary("FirstLib");
}
即可。程序運行如下圖:
http://wiki.jikexueyuan.com/project/android-actual-combat-skills/images/12-2.png" alt="fig.2" />
參考: