zoukankan      html  css  js  c++  java
  • 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中的内容 此时应该与前一次出现的内容不相同。如果是这样的话继续按照上述的方式增加,循环最后就没有这个错误了。

     

     转自:https://www.cnblogs.com/minyc/p/myc201605231154.html

  • 相关阅读:
    Web Service平台有三种元素构成:SOAP、WSDL、UDDI。区别和联系
    WSDL(Web服务描述语言)详细解析(全文转载学习用)
    SOAP和WebService的那些事
    成本加浮动酬金合同 成本加激励费用合同
    理解量子信息
    面向(过程、对象、组件、服务)编程
    POP-OOP-SOP-COP-SOA-AOP
    法律知识
    义帝熊心--秦末汉初
    接口绑定有几种实现方式,分别是怎么实现的?
  • 原文地址:https://www.cnblogs.com/sheseido/p/14090567.html
Copyright © 2011-2022 走看看