2015-12-08 41 views
2

我想使用實驗插件編譯本機代碼。此代碼引用駐留在不同位置的頭文件 在舊版Android.mk中,我只需簡單地添加LOCAL_C_INCLUDES並將其指向頭文件的位置。如何使用實驗Gradle包含頭文件?

但是,我沒有Android.mk時,如何通過gradle構建腳本來實現? gradle中的LOCAL_C_INCLUDES的等效什麼?

我試圖

android.ndk { 
    moduleName = "mymodule" 
    cppFlags.add("-I${file("C:\\Android\\JNI\\inc")}".toString()) 
} 

,但沒有奏效。

無法找到頭文件:「my_file.h沒有這樣的文件或目錄。」

回答

2

你究竟想要做什麼?如果您需要將頭文件添加到您的mymodule庫中,您可以修改:

sources { 
    main { 
     jni { 
      exportedHeaders { 
       srcDir "src/main/headers" 
      } 
     } 
    } 
} 

屬性。

但是,如果你想添加一個外部包含文件夾,你需要提供更多信息。一般來說,這不像添加一些外部目錄那麼簡單。記住,你正在交叉編譯。這些標題對於每個平臺都是一樣的嗎?如果是這樣,你很好,但如果你需要鏈接庫,你必須在鏈接器參數中包含它們的路徑。您應該結帳experimental android native gradle plugin

+0

- 我似乎無法得到exportedHeaders的工作,請你看看http://stackoverflow.com/questions/37147657/exportedheaders-dsl-does-not-seem-to-include-the-headers – Harkish