当前位置: 首页 > 知识库问答 >
问题:

如何在Android Studio中包含*.so库?

卫博学
2023-03-14

我读了很多关于如何在Android Studio中添加*.so库的线程,但是没有一个线程起作用,特别是当涉及到文本的时候:这与更新的xxx(Android Studio,gradle,。。。)

我们能重新开始吗。我得到:

Android Studio 0.6.0

从项目结构中我看到:

SDK位置:

/usr/share/android-studio/data/sdk
/usr/lib/jvm/default-java

项目:

Gradle version 1.10
Android Plugin Version 0.11.+

Modules/App:属性:

编译Sdk版本19构建工具版本19.1.0

依赖项:

{dir=libs, include=[*.jar]} Compile

{dir=libs, include=[*.so]}  Provided

m com.android.support: appcompat -v7:19.+   Compile

我得到了*.so文件的预编译和在演示应用程序,他们正在工作。我必须改变应用程序的源代码,所以我需要重建与相同的*.so文件。

共有3个答案

尚阳炎
2023-03-14

解决方案1:创建JniLibs文件夹

在应用程序中创建一个名为jnilibs的文件夹,并在其中创建包含*.so的文件夹。需要在与“Java”或“资产”文件夹相同的文件夹中创建“JNILIBS”文件夹。

解决方案2:修改build.gradle文件

如果您不想创建一个新文件夹并将*.so文件保存到libs文件夹中,那么可以!

在这种情况下,只需将*.so文件添加到libs文件夹中(请遵守与解决方案1相同的体系结构:例如libs/armeabi/.so),并修改应用程序的build.gradle文件以添加JNILIBS的源目录。

sourceSets {
    main {
        jniLibs.srcDirs = ["libs"]
    }
}

你会有更多的解释,这里有截图帮你(第六步):

http://blog.guillaumeagis.eu/setup-andengine-with-android-studio/

编辑它必须是jnilibs.srcdirs,而不是jni.srcdirs-编辑了代码。目录可以是指向项目目录外部的[相对]路径。

东方骏
2023-03-14

在Android Studio 1.0.2中添加。so库

    --app:
    ---src:
    -----main
    -----jnilibs
    -----armeabi
    -----.so文件
    -----x86
    -------.so文件
    参考
    https://github.com/commonsguy/sqlcipher-gradle/tree/master/src/main/li>
罗祺
2023-03-14

当前解决方案

创建文件夹 ,然后将 文件放在该位置的abi文件夹中。例如,

project/
├──libs/
|  └── *.jar       <-- if your library has jar files, they go here
├──src/
   └── main/
       ├── AndroidManifest.xml
       ├── java/
       └── jniLibs/ 
           ├── arm64-v8a/                       <-- ARM 64bit
           │   └── yourlib.so
           ├── armeabi-v7a/                     <-- ARM 32bit
           │   └── yourlib.so
           └── x86/                             <-- Intel 32bit
               └── yourlib.so

已弃用的解决方案

在模块gradle.build文件中添加这两个代码段作为依赖项:

compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar')

如何创建这个自定义JAR:

task nativeLibsToJar(type: Jar, description: 'create a jar archive of the native libs') {
    destinationDir file("$buildDir/native-libs")
    baseName 'native-libs'
    from fileTree(dir: 'libs', include: '**/*.so')
    into 'lib/'
}

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

同样的答案也可以在android studio中的相关问题:Include.so library in apk中找到

 类似资料:
  • 如果任何人有一个解决办法,或者可以指出我应该读什么的方向,以进一步理解这一点,这将是非常感谢的。 参见下面的cmakelists.txt

  • 尝试转换多个时。使用py2exe将文件复制到exe文件中我得到错误:回溯(最近一次调用上次):文件“ParentWindow.py”,第7行,in 提到的“FileAnalysers1”是包含. py脚本的python包。如何在exe中包含整个包?

  • 问题内容: 我正在编写一个网络自动化程序,到目前为止,使用Selenium的FirefoxDriver可以正常工作。但是,如果未安装Firefox,我想使其使用Chrome。我下载了ChromeDriver,将其放在Eclipse项目的文件夹中,然后运行它。在我添加之后,它运行良好。但是,当我尝试导出它时(使用Eclipse的标准Export)。我相信它会崩溃,因为它找不到ChromeDriver

  • 问题内容: 我正在使用pyinstaller创建我的python脚本的可执行文件。 在脚本中,我使用了以下导入: 问题是,运行时,它将导致包括Firefox而不是Chrome。在结果文件夹c:… \ dist \ myscript \ selenium \ webdriver中,有一个firefox文件夹,因此它只是跳过了chromedriver,这对我来说是个严重的问题,因为脚本需要与Chrom

  • 本文向大家介绍如何在Visual Studio 2012中包含库?,包括了如何在Visual Studio 2012中包含库?的使用技巧和注意事项,需要的朋友参考一下 要在Visual Studio 2012中添加库,有两种不同的方法。第一个是手动方法。第二个是从代码添加库。 首先让我们看看手动方法。 要添加一些库,我们必须遵循以下五个步骤: 使用适当的声明添加#include语句必要的文件。例如

  • 我还使用tkinter用Python3.7编写了一个程序。因为我使用的是外部图片,所以当我将所有内容编译成一个exe时,我需要包含它们。我尝试过执行,但仍然出现以下错误: _特金特。Tcl错误:无法打开“files/bg.png”:没有这样的文件或目录 代码如下: 我做错了什么?我也尝试过添加二进制文件,将该文件添加到我的spec文件中。我真的搞不懂!

  • 我正在编写一个用于日志记录的自定义spring boot starter项目。我的logback-spring.xml变得很大,希望将附加符放入单独的文件(console-appender.xml和file-appender.xml)中,并希望包含在logback-spring.xml文件中,如下所示。我将所有三个XML放在自定义starter项目的src/main/resources文件夹中。

  • 问题内容: 我想知道如何在react项目中包含一个外部javascript库。例如,我想导入jspdf库:https : //github.com/MrRio/jsPDF/blob/master/jspdf.js并在我的reactjs应用程序中使用它。 到目前为止,我尝试使用如下需求: 我有以下错误: TypeError:pdfConverter.jsPDF不是一个函数 。 为了使其正常工作,我做