打开 SO文件的最快速最容易的方法便是双击文件。这样做可以让Windows智能决定使用正确的程序打开SO文件。
若出现无法打开SO文件的情况,很可能是因为电脑上没有安装查看或编辑SO文件扩展名的恰当程序。
若电脑打开了SO文件,但使用的是错误的应用程序,则需要更改Windows注册文件关联设置。也就是说,Windows正在使用错误的程序关联SO 文件扩展名。
相信很多朋友在使用Android studio开发中,遇到过如何引入第三方so文件的问题,然而第三方官方仅仅给出了ADT环境下的集成方式。
Android studio中默认使用的是gradle编译方式,与ADT编辑方式不一样,那么so文件应当如何引入呢?
其实很简单。这里以集成JPUSH为例,看一下so文件如何引入到编译环境,最终到JNI直接可以调用该so文件。
首先,在我们的Module的根目录中建立libs目录,将jpush集成SDK中的so文件分别拷入,截图如下:
然后就是编写我们的buildgradle文件。
关于so文件引入的配置很简单,代码配置如下:
[html] view plain copy print
task nativeLibsToJar(type: Zip, description: "create a jar archive of the native libs") {
destinationDir file("$projectDir/libs")
baseName "Native_Libs2"
extension "jar"
from fileTree(dir: "libs", include: "/so")
into "lib"
}
taskswithType(JavaCompile) {
compileTask -> compileTaskdependsOn(nativeLibsToJar)
}
自定义一个任务,在其中指定项目所依赖的so文件的目录,这里用了/so来写,为了省事,指定需要拷入的目录 into "lib",那么动态运行库就被拷入到lib目录中。
完整的buildgradle文件如下:
[html] view plain copy print
apply plugin: 'comandroidapplication'
android {
compileSdkVersion 21
buildToolsVersion "2110"
defaultConfig {
applicationId "comwujayfooterballstar"
minSdkVersion 8
targetSdkVersion 21
versionCode 1
versionName "10"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-androidtxt'), 'proguard-rulespro'
}
}
task nativeLibsToJar(type: Zip, description: "create a jar archive of the native libs") {
destinationDir file("$projectDir/libs")
baseName "Native_Libs2"
extension "jar"
from fileTree(dir: "libs", include: "/so")
into "lib"
}
taskswithType(JavaCompile) {
compileTask -> compileTaskdependsOn(nativeLibsToJar)
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['jar'])
compile 'comandroidsupport:appcompat-v7:2100'
compile files('libs/jpush-sdk-release172jar')
compile files('libs/umeng_sdkjar')
compile files('libs/libammsdkjar')
}
路径设置不同。adb安装可以找到so文件,系统集成不能找到,是由于在两种情况下环境和路径设置不同,请确保在系统集成或运行时,正确设置了共享对象文件(so文件)的路径,以使系统能够找到它们。
是手机的一些运行库文件,在系统lib的文件夹下,置换移植其他系统的程序也需要修改更换相关so文件;没有它系统软件不能运行,哪部分损坏就影响相对功能,电话接打,通讯录,相机等等都是要依赖so文件使用的。
忘了一点:so文件需要资深安卓大师更改,一般都是现成的搬运移植,打开它没有什么意义。
欢迎分享,转载请注明来源:品搜搜测评网