android studio 導入外部庫文件,以及將項目中module變成library引用依賴

http://www.cnblogs.com/minyc/p/myc201605231154.html

http://www.cnblogs.com/minyc/p/myc201605231154.html
http://www.cnblogs.com/minyc/p/myc201605231154.html
http://www.cnblogs.com/minyc/p/myc201605231154.html


android studio 導入外部庫文件,以及將項目中module變成library引用依賴

一:導入如百度地圖等的外部類。

步驟:1.首先 將androidstudio項目顯示切換到 project 狀態顯示項目

         2.然後添加.jar文件,將所有的.jar文件放入libs文件夾內(libs文件夾就在項目文件夾下),然後在引入的.jar文件上右鍵然後點擊 Add As Library... OK jar文件引入。

         3.添加.so文件,在項目下的src目錄下的main目錄下新建jniLibs文件夾,然後將so文件連帶着他外面的文件夾整個複製到jniLibs文件夾下(注意:so文件不能直接存在於jniLibs文件夾下,需要存在於如armeabi等文件中放入jniLibs文件夾下),倒入文件後在該文件的build.gradle中添加。(爲了保證不出錯,可以將.jar文件放入JinLibs將so文件放入libs文件中,使得libs跟jniLibs文件夾下都存在so跟jar。)

sourceSets{
main(){
jniLibs.srcDirs = ['libs']
}
}
代碼。具體放入位置如下:

apply plugin: 'com.android.library'

android {
compileSdkVersion 23
buildToolsVersion "23.0.3"

defaultConfig {
minSdkVersion 11
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets{
main(){
jniLibs.srcDirs = ['libs']
}
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile files('libs/BaiduLBS_Android.jar')
}
現在就可以使用外部類的方法了。

二:將同項目的module作爲依賴包引用
1.選擇你想作爲library的module。選擇他的build.gradle文件將最上方的代碼
apply plugin: 'com.android.application'改爲apply plugin: 'com.android.library'。然後將下面的代碼刪去位置爲:android下的defaultConfig下的applicationId "frame.myc.com.mycframe"。刪除後代碼爲
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"

defaultConfig {
minSdkVersion 11
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets{
main(){
jniLibs.srcDirs = ['libs']
}
}
}

2.爲主文件添加依賴 mac下使用以下操作:點擊file->project structure左邊的module下選擇你的主工程,然後右邊點擊dependencies,點擊下方或者右方的+點開後在三個選項中選擇module dependency,在彈出界面選擇你剛剛修改作爲library的midule文件 ok了。
其實最簡單的方法就是剛開始建立module的時候就作爲library來新建。仔細去新建一個module來體會一下,在選擇模式的時候選擇library就可以啦


出現錯誤:當你的程序需要引用兩個及以上的module library或者其他的jar包是出現錯誤類型如下

Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK org/apache/log4j/xml/log4j.dtd
File1: /Users/minyuchun/androidwork/projectstudio/StarFaceFrame/app/build/intermediates/exploded-aar/StarFaceFrame/facelibrary/unspecified/jars/classes.jar
File2: /Users/minyuchun/androidwork/projectstudio/StarFaceFrame/app/build/intermediates/exploded-aar/StarFaceFrame/rylibrary/unspecified/jars/classes.jar


出現上述錯誤的原因是因爲 你在引用的labrary中多個存在相同的包導致在打包是衝突 解決方式如下,在android下的 寫
packagingOptions{
  exclude 'org/apache/log4j/xml/log4j.dtd'
}
''單引號中的內容爲上述錯誤中APK後面的內容,按照上述的樣式填寫在 主的app.gradle 中,重新編譯後運行,運行後還可能出現相同的錯誤 這時候請注意錯誤後面APK中的內容 此時應該與前一次出現的內容不相同。如果是這樣的話繼續按照上述的方式增加,循環最後就沒有這個錯誤了。

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章