在Android Studio项目中放置JNI/本机库的位置
我正在尝试编译以下代码: 输入到apk文件中 为此,, 我创建了一个带有空活动的默认Android项目。之后,我将存储库中的相关java文件添加到我的项目中,并进行了一些修改。我还将适当的xml/图像资源添加到我的项目中 现在,我需要将JNI/本机库添加到我的项目中 但是,我不知道放在哪里。我能找到的唯一参考资料是 1] 但是,我的项目结构看起来与截图不同 及 2] 这是旧的/过时的/缺乏细节的 以下是我的项目结构:在Android Studio项目中放置JNI/本机库的位置,android,gradle,android-ndk,java-native-interface,Android,Gradle,Android Ndk,Java Native Interface,我正在尝试编译以下代码: 输入到apk文件中 为此,, 我创建了一个带有空活动的默认Android项目。之后,我将存储库中的相关java文件添加到我的项目中,并进行了一些修改。我还将适当的xml/图像资源添加到我的项目中 现在,我需要将JNI/本机库添加到我的项目中 但是,我不知道放在哪里。我能找到的唯一参考资料是 1] 但是,我的项目结构看起来与截图不同 及 2] 这是旧的/过时的/缺乏细节的 以下是我的项目结构: 支持jni的Android项目的典型结构如下: . ├── CMakeLis
支持jni的Android项目的典型结构如下:
.
├── CMakeLists.txt // Your cmake configuration files.
├── app.iml
├── build
├── build.gradle
├── libs
├── proguard-rules.pro
└── src
├── androidTest
│ └── java
├── main
│ ├── AndroidManifest.xml
│ ├── cpp // Directory to put your jni native source code.
│ │ └── native-lib.cpp
│ ├── java
│ ├── jniLibs // Directory to put your jni libs, i.e. the .so files.
│ └── res
└── test
└── java
但是,从理论上讲,您可以在应用程序级别build.gradle
文件中的任意位置配置jniLibs
路径
android {
...
defaultConfig {
...
externalNativeBuild {
cmake {
cppFlags "-frtti -fexceptions"
}
}
}
...
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
...
sourceSets {
main {
// put your jni libs.
jniLibs.srcDirs += "${projectDir}/jniLibs"]
}
debug {
// put your debug version jni libs.
jniLibs.srcDirs += "${projectDir}/jniLibs/debug"]
}
release {
// put your release version jni libs.
jniLibs.srcDirs += "${projectDir}/jniLibs/release"]
}
}
...
}
对于Android Studio 3.0+,您不需要为
c/c++
源代码显式配置jniLibs
路径,因为它将由Android Studio自动管理。所有src/main/cpp
下的c/c++
源代码都将自动编译并打包到apk中 只是确保您看到: