我目前正在将项目从Ant / ndk-build迁移到Gradle / CMake。我不是从Android Studio而是从命令行进行编译。我已经成功地将一个较大的项目迁移到Gradle。但是现在我需要迁移一些图书馆项目,这些项目的最终产品只是一个共享库,而不是一个完整的APK。
因此,我想知道编译Android项目而不生成APK而是共享对象的最佳方法是什么? Gradle看起来它会一直为我编译APK,但在这种情况下我不需要。所以我应该只使用here所述的CMake吗?但这看起来相当复杂,因为我必须将所有随SDK / NDK更新而变化的各种内部路径传递给CMake,而Gradle可能会自动为我管理。
那么,在不使用Android Studio的情况下从命令行编译Android共享对象的最佳方法是什么?也许有一种方法可以将Gradle置于库模式下,以便它不会组装APK。
最佳答案
从项目的根目录运行gradlew buildNative
。这将构建您的* .c文件。这只是NDK的包装,因此它将产生与从ndk-build
目录运行app/src/main/jni
相同的输出。
假设您在app/src/main/jni
中拥有源文件,头文件和makefile。结果将是您的* .so文件。
关于android - 为Android构建共享对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43453664/