eclipse项目导入Android Studio中加入.so 文件

来源:互联网 发布:先帝知臣谨慎中考题 编辑:程序博客网 时间:2024/06/05 14:36

将eclipse项目导入到Android studio中由于目录结构仍然是eclipse中的目录结构

1、加入.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


最后:如果您看到该文,发现那里有错误希望能指正,如果有更好的解决方法希望您能告知,互相学习嘛 。同时也希望能对遇到该类问题的程序猿(媛)有所帮助。

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

转自:点击打开链接

0 0
原创粉丝点击