Android ndk 不同的 cflags

Android ndk different cflags

我在 Android Studio 中有 3 个项目:生产者、消费者和库。

Lib 是一个共享的 JNI 库,我在其中定义了一些函数以根据它们的使用方式表现不同,而其他函数则相同。例如:

void function() {
#ifdef PRODUCER
  printf("I'm a producer!\n");
#endif // PRODUCER
#ifdef CONSUMER
  printf("I'm a consumer!\n");
#endif // CONSUMER
}

我希望我的 gradle.build lib 脚本基本上有两种潜在的风格:生产者和消费者然后在其他项目中指定依赖项,如编译项目(':lib:生产者')或项目( ':lib:消费者')。这些不同的目标只会在以下方面有所不同:

android {
    defaultConfig {
        ndk {
            cFlag "-DPRODUCER" // or -DCONSUMER
        }
    }
}

这可能吗?

原来最好的办法是升级到 Android Studio 2.2+,然后使用 externalNativeBuild 的 CMake 生成多个库。