android studioのbuild.gradle書き方の概要


多くの場合、studioのIDEは需要を満たすことができず、以下のシーンではbuildを手動で修正する必要があります.gradleファイルで構成を変更
プロジェクトにlibsディレクトリの下のすべてのJAR依存を追加
module settingsでmoduleにdependenceを追加する場合は、次のオプションがあります.
1つ目はネットワーク依存support jarパケットを追加でき、2つ目は単一jar依存を増加させ、3つ目はmodule依存を増加させることができる.
libsディレクトリの下にトンのjarがあり、追加するたびに構成を変更しなければならないので、万が一忘れてしまったらよくありません.
次の内容をdependenciesノードに追加できます.
    compile fileTree(dir: 'src/main/libs', include: ['*.jar'])
IDEで単一JAR依存を追加するとbuild.gradleファイルの追加に対応する内容は「compile file」です
ネットワークJAR依存度の増加
support-v 4などのパッケージは煩わしいので、統一管理のために直接引用することができます.
ただし、IDEで直接修正できるようで、dependenciesノードの下に追加します.
    compile 'com.android.support:support-v4:19.1.0'
このセクションもdepenenciesの下にあり、前のセクションとマージできます.
libsディレクトリを変更しました
libsディレクトリを変更し、構成も変更し、androidノードの下で次のように追加します.
sourceSets.main {
    jniLibs.srcDirs 'src/main/libs'
}

NDKでいくつかのライブラリを参照
私のjni層はC++コードを使っていますが、C++とCのJNI関数には違いがあります.
私のプロジェクトではandroidのロゴとC++のSTLライブラリを使用しました.
以前はeclipseのプロジェクトで、C++コードには次のものが含まれていました.
#include <android/log.h>
でjniのApplication.mkファイルにSTLライブラリのサポートが追加されました:
APP_STL := stlport_static
コマンドラインで直接NDK-BUILDにエラーはなく、studioにエクスポートした後にコンパイルしてもlogおよびSTLが見つかりません.
今はgradleファイルのandroiddefaultConfigノードには、次の内容が含まれます.
ndk {
    moduleName "aa"
    stl "stlport_static"
    ldLibs "log"
}
aaは私のsoライブラリの名前です.
最後に、私のプロファイルを以下のように貼り付けて参考にします.
apply plugin: 'com.android.application'

android {
    compileSdkVersion 19
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.example.sample"
        minSdkVersion 14
        targetSdkVersion 19

        ndk {
            moduleName "aa"
            stl "stlport_static"
            ldLibs "log"
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

    sourceSets.main {
        jniLibs.srcDirs 'src/main/libs'
    }
}

dependencies {
    compile 'com.android.support:support-v4:19.1.0'
    compile fileTree(dir: 'src/main/libs', include: ['*.jar'])
}