當前位置:首頁 » 安卓系統 » android導入so

android導入so

發布時間: 2022-07-12 13:23:34

1. android studio怎麼引入.so文件

Android studio方法:

1、先在Android studio導入一個項目,然後進入到項目中,依次進入到app>>src>>main下。

2. android studio怎樣導入.so文件

我最近剛剛好把工作環境從eclipse切換到android studio上,關於你標題上的問題,我剛好遇到過,特來回答,當然我也是網上搜索到的答案:
一般 Android 項目從 Eclipse 導入至 Android Studio(以下簡稱AS) 後,會出現各種問題,最主要的就是 「gradle」 目前為止還不支持 .so 庫文件打包入 apk 。
也就是說,如果你用的第三方庫中包含 .so 文件 (一般是 libs\armeabi\ xxx.so ) , 那麼只要在代碼中出現 「System.loadLibrary( "xxx" ) ; 等代碼出現,一定會在這里拋出異常 UnsatisfiedLinkError 。
解決方案如下: 根據我 Google 了2天的結果,一個比較滿意且所有出現這個問題的人都可行的方案是:
1) 在硬碟任意位置建立空文件夾 "lib" (注意名字是 "lib" 而不是 "libs" )
2) 把原來的 libs 目錄下的 armeabi 文件夾拷貝至 剛建立的 lib 目錄下. (armeabi文件夾中的.so文件也會被一並拷入)
3) 將剛建立的 "lib" 目錄打包壓縮成 .zip 文件, 同時改名為 「armeabi.jar"
4) 將 armeabi.jar 放入原來的 libs 目錄下 (和其他第三方jar包放在一起)
經過這4步之後,只需要再重新更新下AS的第三方庫,就OK了 .

3. so文件怎麼導入android studio

so文件導入android studio步驟方法:

1、在src/main中添加 jniLibs文件夾 ,把.so復制進去

4. 如何在Android Studio中導入JNI生成的.so庫

相信很多朋友在使用Android studio開發中,遇到過如何引入第三方so文件的問題,然而第三方官方僅僅給出了ADT環境下的集成方式。

Android studio中默認使用的是gradle編譯方式,與ADT編輯方式不一樣,那麼so文件應當如何引入呢?

其實很簡單。這里以集成JPUSH為例,看一下so文件如何引入到編譯環境,最終到JNI直接可以調用該so文件。

首先,在我們的Mole的根目錄中建立libs目錄,將jpush集成SDK中的so文件分別拷入,截圖如下:

然後就是編寫我們的build.gradle文件。

關於so文件引入的配置很簡單,代碼配置如下:

  • tasknativeLibsToJar(type:Zip,description:""){

  • destinationDirfile("$projectDir/libs")

  • baseName"Native_Libs2"

  • extension"jar"

  • fromfileTree(dir:"libs",include:"**/*.so")

  • into"lib"

  • }

  • tasks.withType(JavaCompile){

  • compileTask->compileTask.dependsOn(nativeLibsToJar)

  • }



  • 自定義一個任務,在其中指定項目所依賴的so文件的目錄,這里用了**/*.so來寫,為了省事,指定需要拷入的目錄 into "lib",那麼動態運行庫就被拷入到lib目錄中。

    完整的build.gradle文件如下:

  • applyplugin:'com.android.application'

  • android{

  • compileSdkVersion21

  • buildToolsVersion"21.1.0"

  • defaultConfig{

  • applicationId"com.wujay.footerballstar"

  • minSdkVersion8

  • targetSdkVersion21

  • versionCode1

  • versionName"1.0"

  • }

  • buildTypes{

  • release{

  • runProguardfalse

  • ('proguard-android.txt'),'proguard-rules.pro'

  • }

  • }

  • tasknativeLibsToJar(type:Zip,description:""){

  • destinationDirfile("$projectDir/libs")

  • baseName"Native_Libs2"

  • extension"jar"

  • fromfileTree(dir:"libs",include:"**/*.so")

  • into"lib"

  • }

  • tasks.withType(JavaCompile){

  • compileTask->compileTask.dependsOn(nativeLibsToJar)

  • }

  • }

  • dependencies{

  • compilefileTree(dir:'libs',include:['*.jar'])

  • compile'com.android.support:appcompat-v7:21.0.0'

  • compilefiles('libs/jpush-sdk-release1.7.2.jar')

  • compilefiles('libs/umeng_sdk.jar')

  • compilefiles('libs/libammsdk.jar')

  • }

  • 基於有人在評論區提問,這里補充一下,有一個更為快捷輕快的配置方法

    那就是在build.gradle配置中,配置如下的信息:

  • sourceSets {

  • main { jniLibs.srcDirs = ['libs']

  • }

  • }

  • 你的so包可以放在lib目錄下,跟jar包放在同樣的目錄,如lib/armeabi/libjpush172.so。

5. android studio怎麼導入各平台so庫

導入第三方的so庫,可以參考如下:
目前缺少了libjpush215.so文件。奇怪的是這so庫已經在我們項目的libs中,之前在eclipse中這樣完全能跑起來的。問題是Android Studio目前在打包的時候並沒有在libs中復制SO庫到項目中。因此我們需要在build.gradle中告訴AS執行復制so庫文件。
android {
...
sourceSets {
main {
jni.srcDirs = []
jniLibs.srcDirs = ['libs']
}
}
}

然後重新Sync Now一下,整個世界都明亮了

6. android studio 怎麼引入so包

android {
sourceSets.main.jniLibs.srcDirs = ['libs']

compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion

defaultConfig {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
}

}

7. android studio怎麼導入so文件

首先,在我們的Mole的根目錄中建立libs目錄,將jpush集成SDK中的so文件分別拷入,截圖如下:

然後就是編寫我們的build.gradle文件。
關於so文件引入的配置很簡單,代碼配置如下:

[html] view plain 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"
}

tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn(nativeLibsToJar)
}

自定義一個任務,在其中指定項目所依賴的so文件的目錄,這里用了**/*.so來寫,為了省事,指定需要拷入的目錄 into "lib",那麼動態運行庫就被拷入到lib目錄中。
完整的build.gradle文件如下:

[html] view plain print?
apply plugin: 'com.android.application'

android {
compileSdkVersion 21
buildToolsVersion "21.1.0"

defaultConfig {
applicationId "com.wujay.footerballstar"
minSdkVersion 8
targetSdkVersion 21
versionCode 1
versionName "1.0"
}

buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}

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"
}

tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn(nativeLibsToJar)
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.0'
compile files('libs/jpush-sdk-release1.7.2.jar')
compile files('libs/umeng_sdk.jar')
compile files('libs/libammsdk.jar')
}

8. androidstudio中怎麼引入.so文件

首先,在Mole的根目錄中建立libs目錄,將jpush集成SDK中的so文件分別拷入,截圖如下: 然後就是編寫build.gradle文件。 關於so文件引入的配置很簡單,代碼配置如下: 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" } tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn(nativeLibsToJar) } 自定義一個任務,在其中指定項目所依賴的so文件的目錄,這里用了**/*.so來寫,為了省事,指定需要拷入的目錄 into "lib",那麼動態運行庫就被拷入到lib目錄中。 完整的build.gradle文件如下: apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "21.1.0" defaultConfig { applicationId "com.wujay.footerballstar" minSdkVersion 8 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } 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" } tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn(nativeLibsToJar) } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.0' compile files('libs/jpush-sdk-release1.7.2.jar') compile files('libs/umeng_sdk.jar') compile files('libs/libammsdk.jar') }

9. android studio 怎麼導入.so文件

先在Android studio導入一個項目,然後進入到項目中,依次進入到app>>src>>main下。

在main的文件下進行創建一個jnilibs,然後選中main的文件,進行右鍵,彈出框中點擊「new」,移動下一級菜單中選擇「directory」。

對創建的文件夾進行昵稱,在昵稱中進行輸入「jnilibs」,然後點擊「ok」。

這樣在main的文件中創建一個為jnilibs的文件夾。

然後在jinlibs中文件進行添加so的文件,進入到so文件存放的文件中,直接把so的文件拖動到jinlibs的文件中。

拖動完成之後,會提示一個確認款提示信息,直接點擊「ok」即可。

在non-project file access中第一個我希望編輯文件,第二個為我想在當前會話中編輯任何非項目文件,根據的自己需要進行選擇,可以默認即可,點擊ok。

這樣就把so文件添加到jnilibs的文件中,這樣的話程序的代碼就可以進行調用其中方法

熱點內容
dz上傳的圖片不顯示 發布:2025-01-28 09:37:42 瀏覽:887
joinsql多表 發布:2025-01-28 09:23:26 瀏覽:729
php數組循環賦值 發布:2025-01-28 09:23:25 瀏覽:134
android42系統 發布:2025-01-28 09:21:59 瀏覽:902
菜單設計c語言 發布:2025-01-28 09:21:54 瀏覽:274
sql多表查詢優化 發布:2025-01-28 09:21:05 瀏覽:503
iphone6便捷訪問 發布:2025-01-28 09:05:11 瀏覽:177
四位驗證密碼是多少 發布:2025-01-28 08:56:13 瀏覽:808
筆記本顯卡如何配置 發布:2025-01-28 08:49:49 瀏覽:603
為什麼安卓會有卸載殘留 發布:2025-01-28 08:32:00 瀏覽:89