网站客服:zx81024163 |

关于android studio中libs文件夹的放置

2024-02-18 06:00:33发布    浏览391次    信息编号:98040

友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。

关于android studio中libs文件夹的放置

由于项目原因,需要视频功能。 我使用了jni生成的so包,但是问题来了。 我在项目中没有看到libs文件夹。 然后我创建了一个新的库。 请注意,我在与应用程序目录同一级别的 libs 文件夹中创建了一个新目录。

 然后这样疑问就出来了:这样的话,我的android项目是否可以访问到里面的类呢?应该说这样是可以访问到那些类的,因为在这样放置libs文件夹的情况下,我在开发中所用到的环信sdk里的类编译通过了。可是你让程序跑起来,它会告诉你UnSatisfieldLinkError:Couldn't load,因为它找不到jar包所依赖的so文件。
    但是环信sdk除了jar包之外,还有so库,对于so文件,android studio理论上是要求放置在一个jniLibs文件夹下

于是网上找到了两种解决方案:

1、直接在app->src->main文件夹下创建一个文件夹,然后将所有so文件转移到该文件夹​​下

2.在构建中。 在app目录下的节点,填写以下代码:

sourceSets {
    main {
        //jni库的调用会到资源文件夹下libs里面找so文件
        jniLibs.srcDirs = ['libs']
    }
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

切换到视图会自动在app目录中创建一个文件夹。

于是网上找到了两种解决方案:

1、直接在app->src->main文件夹下创建一个文件夹,然后将所有so文件转移到该文件夹​​下

2.在构建中。 在app目录下的节点,填写以下代码:

sourceSets {
    main {
        //jni库的调用会到资源文件夹下libs里面找so文件
        jniLibs.srcDirs = ['libs']
    }
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

切换到视图会自动在app目录中创建一个文件夹。

我用的是第二个,这也是我要说的libs文件夹的位置:

当我这样运行程序时,它仍然会崩溃。 原因是找不到so文件。 上面的代码是调用jni库会自动去libs找so文件。 那么这里所说的libs文件夹真的是我创建的和app目录同级的libs文件夹吗? 其实我们应该从build..这个build.的位置就可以看出一些端倪。 指构建。 在app目录下,所以应该说这里的libs也应该在app目录下。

然后我将 libs 文件夹移动到与 app 目录和 src 相同的级别,就是这样!

提醒:请联系我时一定说明是从星空网上看到的!