apply plugin: 'com.android.application' repositories { mavenCentral() } configurations { compile.exclude module: 'support-v4' } dependencies { compile 'com.google.android.gms:play-services-gcm:11.0.4' compile 'com.google.android.gms:play-services-maps:11.0.4' compile 'com.google.android.gms:play-services-vision:11.0.4' compile 'com.google.android.gms:play-services-wallet:11.0.4' compile 'com.google.android.gms:play-services-wearable:11.0.4' compile 'com.android.support:support-core-ui:25.3.1' compile 'com.android.support:support-compat:25.3.1' compile 'com.android.support:support-core-utils:25.3.1' compile 'com.android.support:support-v13:25.3.1' compile 'com.android.support:palette-v7:25.3.1' compile 'net.hockeyapp.android:HockeySDK:4.1.3' compile 'com.googlecode.mp4parser:isoparser:1.0.6' compile 'com.stripe:stripe-android:2.0.2' } android { compileSdkVersion 26 buildToolsVersion '26.0.2' useLibrary 'org.apache.http.legacy' defaultConfig.applicationId = "org.telegram.messenger" sourceSets.main.jniLibs.srcDirs = ['./jni/'] externalNativeBuild { ndkBuild { path "jni/Android.mk" } } dexOptions { jumboMode = true } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } signingConfigs { debug { storeFile file("config/release.keystore") storePassword RELEASE_STORE_PASSWORD keyAlias RELEASE_KEY_ALIAS keyPassword RELEASE_KEY_PASSWORD v2SigningEnabled false } release { storeFile file("config/release.keystore") storePassword RELEASE_STORE_PASSWORD keyAlias RELEASE_KEY_ALIAS keyPassword RELEASE_KEY_PASSWORD v2SigningEnabled false } } buildTypes { debug { debuggable true jniDebuggable true signingConfig signingConfigs.debug applicationIdSuffix ".beta" } release { debuggable false jniDebuggable false signingConfig signingConfigs.release minifyEnabled false shrinkResources false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } foss { debuggable false jniDebuggable false signingConfig signingConfigs.release } } defaultConfig.versionCode = 1154 sourceSets.debug { manifest.srcFile 'config/debug/AndroidManifest.xml' } sourceSets.release { manifest.srcFile 'config/release/AndroidManifest.xml' } sourceSets.foss { manifest.srcFile 'config/foss/AndroidManifest.xml' } flavorDimensions "minApi" productFlavors { x86 { ndk { abiFilter "x86" } versionCode = 2 } armv7 { ndk { abiFilter "armeabi-v7a" } versionCode = 1 } x86_SDK23 { ndk { abiFilter "x86" } sourceSets.debug { manifest.srcFile 'config/debug/AndroidManifest_SDK23.xml' } sourceSets.release { manifest.srcFile 'config/release/AndroidManifest_SDK23.xml' } minSdkVersion 23 versionCode = 4 } armv7_SDK23 { ndk { abiFilter "armeabi-v7a" } sourceSets.debug { manifest.srcFile 'config/debug/AndroidManifest_SDK23.xml' } sourceSets.release { manifest.srcFile 'config/release/AndroidManifest_SDK23.xml' } minSdkVersion 23 versionCode = 3 } fat { sourceSets.debug { manifest.srcFile 'config/debug/AndroidManifest_SDK23.xml' } sourceSets.release { manifest.srcFile 'config/release/AndroidManifest_SDK23.xml' } versionCode = 5 } } applicationVariants.all { variant -> variant.outputs.all { output -> output.processManifest.doLast { def abiVersion = variant.productFlavors.get(0).versionCode String manifestPath = "$manifestOutputDirectory/AndroidManifest.xml" def manifestContent = file(manifestPath).getText() manifestContent = manifestContent.replace(String.format('android:versionCode="%d"', abiVersion), String.format('android:versionCode="%s"', defaultConfig.versionCode * 10 + abiVersion)) file(manifestPath).write(manifestContent) } } } defaultConfig { minSdkVersion 16 targetSdkVersion 25 versionName "4.6.0" externalNativeBuild { ndkBuild { arguments "NDK_APPLICATION_MK:=jni/Application.mk", "APP_PLATFORM:=android-14" abiFilters "armeabi-v7a", "x86" } } } } apply plugin: 'com.google.gms.google-services'