2016-08-23 52 views
1

我在Android Studio中有3個項目:生產者,消費者和lib。Android ndk不同cflags

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:consumer')。這些不同的目標只會在以下變化:

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

這可能嗎?

回答

1

原來這裏最好的做法是升級到Android Studio 2.2+,然後使用externalNativeBuild的CMake生成多個庫。