Android Studio 打包so

来源:互联网 发布:python 打包 编辑:程序博客网 时间:2024/05/07 07:52

前些日子eclipse突然全方面罢工,于是换了使用Android Studio。
然后在使用过程中,需要.jar和.so,遇到了些问题,下面总结下使用方法:

1、加入jar拿百度定位SDK来说,按照百度官方的文档完成配置完成后,因为Android Studio使用的是gradle,所以需要在项目的build.gradle中添加jar包的配置。(注意,这里不是整个工作空间只是单个项目的build.gradle)打开后是下面这个样子的:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android'
 
repositories {
    mavenCentral()
}
 
dependencies {
    compile'com.android.support:support-v4:13.0.+'
}
 
android {
    compileSdkVersion17
    buildToolsVersion"17.0.0"
 
    defaultConfig {
        minSdkVersion8
        targetSdkVersion16
    }
}
然后在 dependencies{}中添加放置在libs文件夹下的名为xxxx.jar导入: 
?
1
2
3
4
dependencies {
    compile'com.android.support:support-v4:13.0.+'
    compile files('libs/xxxx.jar')
}
这样配置之后,百度的位置信息还是一直没有获取到,最可能的原因就是.so文件没有加载成功 
2、加入.so
: 

(1)这个还与gradle版本有关系。在v0.3(可以从上面dependencies{ classpath 'com.android.tools.build:gradle:0.5.+'}中看到我的版本是v0.5)下可以在build.gradle中添加如下设置:

?
1
2
3
4
5
6
7
8
9
10
11
12
task copyNativeLibs(type: Copy) {
    from(newFile(project(':MyProject').buildDir,'native-libs')) { include '**/*.so'}
    intonewFile(buildDir, 'native-libs')
}
 
tasks.withType(Compile) { compileTask -> compileTask.dependsOn copyNativeLibs }
 
clean.dependsOn'cleanCopyNativeLibs'
 
tasks.withType(com.android.build.gradle.PackageApplicationTask) { pkgTask ->
    pkgTask.jniDirnewFile(buildDir, 'native-libs')
}
(注意:代码中的':MyProject'一定要换成你的项目名字哦) 
因为我的不是v0.3所以我也没有获得想要的结果。希望使用v0.3的同学验证上面方法是否能成功。该方法GitHub地址: 地址 
(2)0.5中我选择的处理方法: 
将所有需要使用的.so文件压缩为.zip文件(zip中的文件目录结构为: lib/armeabi/*.so)注意,一定要是这样的路径,lib不要写成libs啊!然后将这个.zip文件重命名为armeabi.jar文件(我用的是so.jar),将该jar包添加到项目的libs文件下。在项目build.gradle中的添加jar文件的dependencies中删除已添加的jar,包括 compile 'com.android.support:support-v4:13.0.+' 这个。更改为: 
?
1
2
3
dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}
虽然感觉上面的方法有些小变态,但是解决问题才是关键对不? 
再详细说一下: 
最后的目录结构 
libs 
^---|xxx.jar 
^---|armeabi.jar 
        ^---|lib 
              ^---|armeabi 

                     ^---|xxx.so

刚开始使用ubuntu,IBus默认输入法中特殊符号不会使用,只能形像到这里,希望能看懂。回公司补个截图。先凑合看。 
最后:如果您看到该文,发现那里有错误希望能指正,如果有更好的解决方法希望您能告知,互相学习嘛  。同时也希望能对遇到该类问题的程序猿(媛)有所帮助。

---生命不止,编码不息。  


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孩子半个月奶水越来越少怎么办 半个月后奶水越来越少怎么办 坐月子半个月奶水越来越少怎么办 孩子七个月奶水越来越少怎么办 生完孩子奶水越来越少怎么办 生完孩子回奶了怎么办 产妇3天没奶水怎么办 产后7天了奶水少怎么办 刚生完小孩没有奶水怎么办 突然就没奶水了怎么办 生完小孩没有奶水怎么办 生完宝宝没有奶怎么办 剖腹产奶涨的疼怎么办 生产一天了没奶怎么办 第一天断奶 奶水一直流出怎么办 新生儿刚出生没奶水怎么办 安卓手机死机了怎么办 婴幼儿几天不拉大便怎么办 樱桃吃多了胃不舒服怎么办 空腹吃水果胃不舒服怎么办 吃水果后胃不舒服怎么办 吃水果伤胃了怎么办 大人吃退烧药不出汗怎么办 稍微吃点凉水果胃就疼怎么办 1岁宝宝感冒发烧怎么办 3岁小儿反复发烧怎么办 热感冒喉咙疼要怎么办 孩子感冒咳嗽嗓子疼怎么办 孕妇感冒了嗓子疼咳嗽怎么办 4岁宝宝反复高烧怎么办 小孩吃完药不退烧怎么办 六个月婴儿发烧怎么办退烧快点 咳嗽20天老不好怎么办 吃过退烧药出汗怎么办 5岁儿童发烧39度怎么办 小孩烧到39度怎么办 儿童7岁发烧39度怎么办 发烧没药怎么办怎样退烧快 小孩发烧怎么办怎样退烧快 发烧头疼怎么办最快最有效 发烧头晕怎么办最快最有效