1

多くのモジュールを含むアプリに新しい実験的ビルド ツール (gradle-experimental:0.2.1) を実装しましたが、現在の API はかなりひどいもので、特定のライブラリと互換性がありません。

すべての ndk コードをモジュールに取り込み、実験的なビルド ツールで ndk モジュールのみを処理し、残りのアプリには公式のビルド ツールを使用することが可能かどうか興味があります。すべての実験的な頭痛の種を小さなモジュールに分離することは素晴らしいことです。

いくつか試してみましたが、常に gradle 同期エラーが発生しました。これが実現可能かどうかに関して、オンラインで何も見つかりませんでした。

4

1 に答える 1

0

私の問題の一部は、AS 2.0 へのアップグレードの問題でした。その問題を修正した後、Hello World テンプレート プロジェクトで簡単なテストを行うことができました。モジュールを追加し、実験的なプラグインを使用するように変更しました。

build.gradle (ndk モジュール)


buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath "com.android.tools.build:gradle-experimental:0.4.0"
    }
}
dependencies {
    repositories {
        jcenter()
    }
}

apply plugin: 'com.android.model.library'
model {
    android {
        compileSdkVersion = 23
        buildToolsVersion = "23.0.2"

        defaultConfig.with {
            minSdkVersion.apiLevel = 11
            targetSdkVersion.apiLevel = 22
            versionCode = 1
            versionName = "1"
        }
    }
}

まとめの更新

はるかに複雑なプロジェクトで ndk を使用して動作させることができました。これを機能させるための 4 つの主要な要件は次のとおりです。

  1. plugin gradle-experimental:0.4.0+ in your ndk module build.gradle (また、新しいDSLに変換します)
  2. プラグインgradle:1.5.0プロジェクト内 build.gradle
  3. Gradle 2.8 (gradle:1.5.0 プラグインが必要)
  4. jni は 1.3.0 以降で非推奨になったため、メイン プロジェクトからすべて削除します (モジュールに移動)。

これらのバージョンの gradle プラグインを組み合わせないと、多くのエラーが発生しました。ねじれを解決するのは少し頭痛の種ですが、今では ndk の頭痛の種を単純なモジュールに分離し、gradle-experimental ではうまく機能しないクラッシュリティクスなどを統合できます。

于 2015-11-24T00:41:27.897 に答える