Android实战技巧之十二:Android Studio导入第三方类库、jar包和so库_anddroid studio 添加 jdbc-程序员宅基地

技术标签: android-studio  Android实战技巧  so库  类库  jar包  Android  

第三方类库源码

将一网友的XMPP代码从ADT转到AS时,发现其使用了第三方类库,源码放在了lib下,直接在AS中Import project,第三方类库并没有自动导入进来,看来需要自己动手了。

项目的目录结构如下:

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内加入:

dependencies {
    compile project(':qqEmoji-lib')
    ...

在qqEmoji-lib下新建build.gradle文件,内容参考如下:


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的配置内容情参考最后第二个链接。

此时项目的结构见下图:

此时编译,通过,导入成功!

第三方类库jar包

这就简单多了,直接将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')
}

第三方so库

通常来说,我们调用第三方的so库是不需要额外工作的,只需将其放入指定目录,然后在java文件中load即可。
比如我引用之前《第一个NDK程序》中编译出的libFirstLib.so,将其放到app/src/main/jniLibs/armeabi/下,在源码中引用:

    static {  
    System.loadLibrary("FirstLib"); 
    }  

即可。程序运行如下图:

参考:
http://www.cnblogs.com/neozhu/p/3458759.html
http://www.open-open.com/lib/view/open1415793464648.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lincyang/article/details/43951527

智能推荐

对于GreenDao的基本使用_greendao.deleteall无效-程序员宅基地

文章浏览阅读494次。greenDao和之前的区别就是不用写大量的sql语句,节省了很多的时间。首先在build.gradle导入classpath ‘org.greenrobot:greendao-gradle-plugin:3.2.2’然后在你的model里面导入apply plugin: ‘org.greenrobot.greendao’在app里面写这个greendao {schemaVersio..._greendao.deleteall无效

Socket套接字程序编写步骤_socket编程基础实验---数据报套接字编程主要部分流程图-程序员宅基地

文章浏览阅读5.5k次。服务器端程序的编写步骤:第一步:调用socket()函数创建一个用于通信的套接字。第二步:给已经创建的套接字绑定一个端口号,这一般通过设置网络套接口地址和调用bind()函数来实现。第三步:调用listen()函数使套接字成为一个监听套接字。第四步:调用accept()函数来接受客户端的连接,这是就可以和客户端通信了。第五步:处理客户端的连接请求。第六步:终止连接。_socket编程基础实验---数据报套接字编程主要部分流程图

hdu4412 Sky Soldiers_sky soldiers hdu-程序员宅基地

文章浏览阅读182次。Sky Soldiers Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 926 Accepted Submission(s): 350 Problem Description An ai..._sky soldiers hdu

传新版支持光追的 MikuMikuDance 正由另一人研发——MikuMikuDance 2 Project_mikumikudance源代码-程序员宅基地

文章浏览阅读435次。翻译自 https://www.tamafutoshi.net/mmd2.html项目介绍最近更新:2022/01/09欢迎来到下一代 MMD 项目:为每个人准备的新的 3D 操场。MMD2 是完全从头开始构建的,这充分表明我们拥有完整的软件底层控制。我们想要什么功能就可以创建什么功能。不需要计算机图形学的专业知识,到时候会有专门的教程。您可以创建自己的渲染资源或使用每个人共享的资源。渲染资源可以是任意内容,从图像、音乐文件,到模型、着色器或者舞台……重要通知我们这个 MMD2 并不是原来 MM_mikumikudance源代码

还不懂Linux内核吗?手把手教你分析Linux 内核结构_linux操作系统内核教程-程序员宅基地

文章浏览阅读441次。本文主要会带你介绍 Linux 操作系统,包括 Linux 本身、Linux 如何使用、以及系统调用和 Linux 是如何工作的。相关视频还不懂内核吗?5个方面分析内核架构,让你对内核不再陌生深透剖析Linux内核字符与块设备驱动程序Linux 简介UNIX 是一个交互式系统,用于同时处理多进程和多用户同时在线。为什么要说 UNIX,那是因为 Linux 是由 UNIX 发展而来的,UNIX 是由程序员设计,它的主要服务对象也是程序员。Linux 继承了 UNIX 的设计目标。从智能手机到汽车_linux操作系统内核教程

webmagic采集CSDN的Java_WebDevelop页面-程序员宅基地

文章浏览阅读1.5w次。使用webmagic采集博客类的网站示例

随便推点

8连通、4连通的洪泛填充以及边界填…_8连通域 算法-程序员宅基地

文章浏览阅读4.9k次。运用八连通边界填充算法进行多边形的填充(1)首先通过颜色混合的方式形成一个图形包中函数的对多边形的填充,如下图所示:计算机图形学 Opengl" TITLE="8连通、4连通的洪泛填充以及边界填充 计算机图形学 Opengl" />【注】主要代码如下://实现多边形的简单填充#include#ifdef__APPLE__#include #else#include _8连通域 算法

在互联网寒冬,程序员能够做什么?_程序员可以做什么-程序员宅基地

文章浏览阅读395次。行业寒冬不可怕,行业寒冬我们更要学会厚积薄发,应掌握安分守己,找准自己的核心竞争力,不断打磨,不断实践,才能临危不惧,活出精彩,最终迎来下一波红利。要说互联网“寒冬”,从各大互联网企业的纷纷裁员及一系列降低成本的举措来看,已经是不争的事实了。具体表现如下:1、大形式不好,根本不只互联网有点冷,像房地产,金融证券也冷的一踏糊涂,金融行业降薪很普遍。2、很多小公司小企业倒闭裁员,新闻不..._程序员可以做什么

君正Zeratul开发(3)——升级回滚_ota升级中实现linux系统回滚机制-程序员宅基地

文章浏览阅读1.2k次。升级 升级有两种方案:直接升级方案,recovery 升级 直接升级方案与其他嵌入式设备升级方式一样,就是从不同地方(OTA,U盘,TF卡等)获取升级文件,然后将需要升级的数据烧录到指定的flash分区地址去就可以了。 recovery 升级是当系统启动异常或是接收到recovery命令的时候,设备进入recovery模式,这个模式是一个精简的系统,一般只初始化跟升级相关的外设,一般也只进行升级相关的业务。 直接升级直接升级方案的几个分区升级方法如下: boot: 系统启动后 boot 分区不_ota升级中实现linux系统回滚机制

Wishare H题_wishromm3答案-程序员宅基地

文章浏览阅读199次。小A要发布一个视频展现他优秀的球技,视频有n帧,小A有m个粉丝,如果同时有两个以上的粉丝看到他秀球技的一帧,该视频就会被广为传播,导致所有的粉丝发疯。每个粉丝会在y = k * ai + ri 时刻看视频,k为整数,问在保证粉丝不发疯的情况下小A可以在多少帧里炫技?0 < a <= 100,0 <= r < a,1 <= n,m <=1e5仔细观察数据量..._wishromm3答案

Newtonsoft.Json序列化字符串-格式化和时间格式问题-程序员宅基地

文章浏览阅读670次。最近C#中需要将实体进行json序列化,使用了Newtonsoft.Json public static void TestJson() { DataTable dt = new DataTable(); dt.Columns.Add("Age", Type.GetType("System.Int32")); ..._json serializeobject后不格式化可以吗

day55——requests模块-程序员宅基地

文章浏览阅读224次。requests模块是一个第三方模块,对urllib模块进行了封装,提供了更友好更强大的API使用pip安装即可requests模块的官方文档:http://docs.python-requests.org/zh_CN/latest/1. GET请求 1 In [1]: import requests 2 3 In [2]: help(request..._eyjzzxnzaw