2015-10-09 50 views
2

我正在使用Android Studio 1.4和NDK支持的實驗性插件(com.android.tools.build:gradle-experimental:0.2.0)。Android Studio 1.4,實驗性插件,JNI文件夾的路徑?

該項目有一個C文件,並通過靜態庫的本機代碼的其餘部分相連,這樣的:

android.ndk { 
    moduleName = "native" 
    ldFlags += ["-g"] 
    ldFlags += ["-L/Users/me/Desktop/MyApp/app/src/main/jni", "-lnative"] 
} 

這個工作對我來說,從JNI文件夾鏈接libn​​ative.a。

但我想指定本地庫相對於項目的位置。
我到底該怎麼做?

謝謝。

回答

2
android.ndk { 
    moduleName = "native" 
    ldFlags += ["-g"] 
    ldLibs += ["-L", file("src/main/jni").absolutePath, "-lnative"] 
} 

請注意,我用LDLIBS,不LDFLAGS - 這是使用有點不同僞造鏈接器命令行。

其實,如果你想添加只有一個庫中,首選的語法將

ldflags += file("src/main/jni/libnative.a").absolutePath 

(沒有必要鏈接器尋找其他圖書館這個"src/main/jni"目錄)。

文件()是相對於當前模塊;如果要指定相對於當前項目的路徑,請使用文件()

+1

太棒了,謝謝!奇蹟般有效。與第二個選項一起。 –