nasıl

2016-04-12 42 views
1

en biz ana/JNI tüm kaynaklar derlenmiş gerektiğini Gradle anlatmak istiyorumnasıl

src/ 
├── androidTest 
├── app.iml 
├── build.gradle 
├── main 
│   ├── AndroidManifest.xml 
│   ├── java 
│   ├── jni 
│   │   ├── common 
│   │   │   ├── inc 
│   │   │   │   ├── common.h 
│   │   │   │   ├── ... 
│   │   │   └── src 
│   │   │    ├── common.cc 
│   │   │    ├── ... 
│   │   └── native-media.cc 
│   └── res 
├── proguard-rules.pro 
└── test 

feryat olarak yapıyla kodları var diyelim Android Studio JNI'yı alt dizinleri kurmak. Eğer onu bıraksam, AS (Android Studio) derlenecek jni dizinindeki tüm dosyaları kullanacaktır. Ancak, bazı alt dizinler varsa, burada ortak/inc ve ortak/src gibi, AS karışık olur.

Ben çok googled, ancak tüm yolları ben çalışmıyor bulundu. (Örn Gradle-experimental, aslında Android Studio şikayet ve bunu takip ederseniz vuracaktır.)

Peki JNI bahsetmek doğru yoldur CMake veya GNUMake ile konuştuğum gibi Grades ile dizinler ...

cevap

0

AS, varsayılan olarak tüm C/C++ dosyalarını jni dizini altında derler. Daha fazla kontrole ihtiyacınız varsa, ya deneysel eklentiyi kullanın ya da yerleşik görevi devre dışı bırakın ve ndk-build'u çalıştırın, örneğin define LOCAL_SRC_FILES in ndk{} DSL'a bakın.

+0

Visual Studio'nun son sürümü gibi görünüyor ve deneysel Gradle çok değişti. – hxpax

+0

* Android Studio * demek istiyorsun, değil mi? –

+0

Evet, Android Studio 2.0 – hxpax

0

Android Studio gradyan-deneysel eklentisi, yerel kod için varsayılan olarak $ {app}/src/main/jni kullanır ve işlem özyineledir: tüm alt dizinler yerel paylaşılan lib oluşturmak için dahil edilecektir. dosya adı için olduğunu dışlamak
https://github.com/googlesamples/vulkan-basic-samples/blob/master/LunarGSamples/Demos/Hologram/android/build.gradle

Not, birden dosyayı sahip oturur veya hangi dizinde önemli değil: bazı özel dosya (lar) İstemediğiniz varsa, sen gibi "dışarıda" deneyebilirsiniz aynı adın Yukarıdaki bağlantıda, "jni" klasöründe olmayan diğer dizinlerden kaynak kodu da içerir.

Ayrıca bu örneği görebilirsiniz:
https://github.com/googlesamples/android-ndk/tree/master/Teapot/app/src/main/jni o oluşur ve çalışır çok JNI altında alt dizin var, ama "dışlamak" kullanmaz.

Sorununuz başka bir şey olabilir, Android Studio iç içe dizinleri işleyebilir. Kodunuza bir ling ekleyebilecekseniz, bu harika olurdu.

+0

Not için teşekkürler – hxpax