Android Studio无法检测到我的库文件。

3

我试图将 .so 文件包含到我的项目中,这是我的 gradle 文件:
我在路径 src\main\jnilibs 中创建了一个 jnilibs 文件夹,并将所有的 .so 文件放入其中。
文件夹结构如下:

|--jnilibs
|--|--armeabi
|--|--|--.so Files
|--|--armeabi-v7a
|--|--|--.so Files
|--|--mips
|--|--|--.so Files
|--|--x86
|--|--|--.so Files

然后在gradle中设置jniLibs.srcDirs的代码,并添加compile fileTree,我的gradle文件看起来像这样:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
    //....other code
    sourceSets {
        main {
            jniLibs.srcDirs = ["src/main/jniLibs", "$buildDir/native-libs"]
        }
    }

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

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

dependencies {
    compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar')
    compile fileTree(include: ['*.jar','.so'], dir: 'libs')
    compile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.3.0'
}

重新构建后,我现在在这个路径下看到了 native-libs.jar 文件: app\build\native-libs
因此,现在我想使用以下代码将库导入我的项目

import org.infradead.libopenconnect.LibOpenConnect;

这是全部内容,但我现在遇到了这个错误。
cannot resolve symbol org.infradead

我安装了ndksdkcmakelldb,并且使用的操作系统是windows
请问有什么问题?如何解决呢?
谢谢。


问题解决了吗?如果您能分享结果,我会很高兴。 - Mehrdad
1个回答

0
尝试使用文件 -> 新建 -> 导入模块并加载所需文件。 接下来,转到文件 -> 项目结构 -> 应用程序 -> 依赖项选项卡,并添加您刚刚添加的库。 最重要的一步是,您需要将所有库从build文件夹移动到app -> src -> main -> libs文件夹。这对我有用。如果没有,请在main下创建libs文件夹。

1
谢谢您的回答,但是导入模块不可能!如果我只有lib文件而没有其他gradle文件,该怎么办?我已经将所有库从build文件夹移动到libs文件夹,并手动在Dependencies中添加它们,但是我没有得到任何不同的结果。 - MrUnknow

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接