1

実験的なgradleプラグインの「複数のNDKプロジェクト」機能を利用しようとしています。Android Studio 2.1 と gradle plugin 0.7.0 安定版を使用しています。ネイティブ ライブラリの exportHeaders セクションで指定されたヘッダー ファイルがコンパイル時にインクルードされるとブログは言っているようです

exportedHeaders {
                        srcDir "src"
                    }

これは私にはうまくいかないようです。たとえば、次のフォルダー構造があるとします。Addition.h が native.cpp で利用できると予想されます。つまり、次のように言うことができるはずです。

#include <Addition.h>

だけ

#include "../../../../../../../Framework/Addition/src/Addition.h" 

動作します。ヘッダーを含めるために cppFlags を追加しても違いはありません。

フォルダ構造

サンプル プロジェクトの関連ファイルがどのように見えるかを次に示します。サンプル プロジェクト モジュール「app」は、ネイティブ ライブラリ モジュール「addition」に依存して 2​​ つの数値を加算します。ネイティブ ライブラリは、新しいネイティブ プラグインを使用します。

settings.gradle

include ':app'
include ':Addition'
project (":Addition").projectDir = new File("../../../Framework/Addition")

gradle-wrapper.properties

#Mon Dec 28 10:00:20 PST 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip

build.gradle (:アプリ)

apply plugin: 'com.android.model.application'

model {
    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.2"

        ndk {
            moduleName = 'native'
            platformVersion = 17
            toolchain "clang"
            cppFlags.addAll(['-I' + file('src/main/jni'),
                             '-I'  + file('../../../Framework/Addition')])
        }

        sources {
            main {
                jni {
                    dependencies {
                        project ':Addition' linkage 'static'
                    }
                }
            }
        }

        defaultConfig {
            applicationId "com.harkish.nativepluginexample"
            minSdkVersion.apiLevel 21
            targetSdkVersion.apiLevel 23
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                minifyEnabled false
            }
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.3.0'
}

build.gradle (:追加)

apply plugin: 'com.android.model.native'

model {
    android {
        compileSdkVersion = 23
        buildToolsVersion = '23.0.2'

        defaultConfig {
            minSdkVersion.apiLevel = 21
            targetSdkVersion.apiLevel = 23
            versionCode = 1
            versionName = '1.0'
        }
        ndk {
            moduleName = 'addition'
        }
        sources {
            main {
                jni {
                    source {
                        srcDir "src"
                    }
                    exportedHeaders {
                        srcDir "src"
                    }
                }
            }
        }
    }
}

誰でもこの問題を解決しましたか?アイデア?

4

0 に答える 0