我有一個C++代碼庫,當前在Visual Studio中設置(在Windows上運行),多個項目具有相互依賴關係。我試圖將其轉移到Android Studio,以使其在Android上運行。 我對Visual Studio和C++很熟悉,但是對於Android Studio的Gradle和CMake來說還是很新的。Android Studio中的多個本機模塊
我的(可能是錯誤的)期望是嘗試和對待Android Studio項目,如Visual Studio Solutions和Android Studio模塊,如Visual Studio Projects。鑑於我的代碼庫在Visual Studio中使用多個項目,我正嘗試在Android Studio中創建多個模塊 - 每個模塊都有自己的build.gradle
和CMakeLists.txt
文件。
問題是我無法獲得一段代碼(AS模塊)與其他鏈接。我正在使用add_library()
編譯這些不同的部分爲STATIC
(我打算讓一個模塊創建SHARED
庫,以加載到Java中)。
我可以很容易地通過include_directories("../OtherModule/src/")
獲得包括工作。但是,我無法將其鏈接。我找不到要鏈接到的.so(或類似)文件(通過target_link_libraries()
或同等文件)。當我從給定的模塊中提取.arr文件時,我沒有看到任何.so或任何東西。
我知道我可以簡單地把整個基本代碼下一個模塊(使用一個build.gradle
和一個CMakeLists.txt
- 或網絡的使用add_subdirectory()
CMakeLists.txt
「S)。我不知道這是否正確,或者是否需要更多/更少的時間來構建。
我相信可以有多種方式來設置它,它可能只是一個偏好問題。到目前爲止,我所做的所有研究都只發現使用Java代碼嚴格將本地代碼添加到相同的模塊 - 執行基本的JNI本機橋接器。我一直無法找到關於多個本地模塊鏈接在一起的單篇文章。
我希望有更多的Android本地開發經驗的人可以幫助我。謝謝!
TL; DR:簡化方案:(不關心JNI本機橋)我在Android Studio中有兩個模塊,都只有本機代碼。我希望每個模塊都有自己的build.gradle
和CMakeLists.txt
,創建自己的STATIC
庫。一個模塊依賴於另一個模塊,並且必須設置正確的包含和鏈接目錄。怎麼辦?這是否正確(或者應該只有一個帶有本機代碼的模塊)?
謝謝,這種作品,但它絕對不是理想的。任何人都知道現在是否有更好的解決方法? – Lordalcol