Android 无法解析配置CompileClasspath的所有文件

Android 无法解析配置CompileClasspath的所有文件,android,gradle,android-gradle-plugin,Android,Gradle,Android Gradle Plugin,我试图用“.\gradlew AssembledUng”运行我的项目,但我一直得到这个输出 Could not resolve all files for configuration ':app:mobileGoogleZappDebugCompileClasspath'. > Could not resolve com.applicaster:GrandeFamily:0.3.+. Required by: project :app > Failed to l

我试图用“.\gradlew AssembledUng”运行我的项目,但我一直得到这个输出

Could not resolve all files for configuration ':app:mobileGoogleZappDebugCompileClasspath'.
> Could not resolve com.applicaster:GrandeFamily:0.3.+.
  Required by:
      project :app
   > Failed to list versions for com.applicaster:GrandeFamily.
      > Unable to load Maven meta-data from https://dl.bintray.com/applicaster-ltd/maven/com/applicaster/GrandeFamily/maven-metadata.xml.
         > Could not get resource 'https://dl.bintray.com/applicaster-ltd/maven/com/applicaster/GrandeFamily/maven-metadata.xml'.
            > java.lang.NullPointerException (no error message)
我在网上寻找答案,但大多数人只是说要改变
google()
maven()
jcenter()
的顺序,但没有帮助

这是我的项目级渐变文件:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlin_version = '1.2.0'
    repositories {
        google()
        jcenter()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'

        classpath 'com.google.android.gms:strict-version-matcher-plugin:1.0.3'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven { url 'https://maven.google.com' }
        maven { url 'https://jitpack.io' }
        maven {
            credentials{
                username System.getenv("MAVEN_USERNAME")
                password System.getenv("MAVEN_PASSWORD")
            }
            url 'https://dl.bintray.com/applicaster-ltd/maven'
        }
        maven {
            url "$rootDir/node_modules/react-native/android"
        }
        maven {
            url "$rootDir/.m2"
        }


        maven {
            url "https://dl.bintray.com/applicaster-ltd/maven_plugins"

        }
        maven {
            url "https://mvn.jwplayer.com/content/repositories/releases/"

        }
        maven {
            url "https://dl.bintray.com/applicaster-ltd/maven_plugins/"

        }
        maven { url 'https://github.com/applicaster/APLiveScreenPro7-RN.git' }

    }
}

/**
 * Auto-generated from .env build configuration.
 */
ext.dimensionsConfig = [
    "platform": "mobile", // ["google", "amazon"]
    "vendor": "google", // ["mobile", "tv"]
    "flavor": "zapp", // ["zapp", "quickbrick"]
]

/**
 * Order of dimensions is critical! platform > vendor > flavor
 */
ext.zappProductFlavors = [
    mobile:     "platform",
    tv:         "platform",
    google:     "vendor",
    amazon:     "vendor",
    zapp:       "flavor",
    quickbrick: "flavor",
]

ext.zappProductFlavorsMap = {
    zappProductFlavors.each { key, dim ->
        "${key}" { dimension "${dim}" }
    }
}

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                flavorDimensions dimensionsConfig.keySet() as String[]
                productFlavors zappProductFlavorsMap
            }

            /**
             * Reject all variants that are not relevant for the current build -
             * you should be left with two only, debug and release.
             * e.g.: "mobileGoogleZappDebug/Release" or "tvAmazonZappDebug/Release" etc.
             */
            android.variantFilter { variant ->
                for (flavor in variant.getFlavors()) {
                    if (flavor.name != dimensionsConfig[flavor.dimension]) {
                        variant.setIgnore(true)
                    }
                }
            }
        }
    }
}
apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    buildToolsVersion "28.0.3"

    defaultConfig {
        applicationId "com.protvromania"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 273
        versionName "1.0.4-alpha.3"
        manifestPlaceholders = [
          app_name: "PROTV",
          fb_app_id: "1147926948637494",
        ]
        multiDexEnabled true
        renderscriptSupportModeEnabled true

        ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'


    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    lintOptions {
        abortOnError false
    }

    dexOptions {
        jumboMode = true
        preDexLibraries = false
        javaMaxHeapSize "4g"
    }

    packagingOptions {
        // Common
        pickFirst 'META-INF/NOTICE.txt'
        pickFirst 'META-INF/LICENSE.txt'
        pickFirst 'META-INF/LICENSE'
        pickFirst 'META-INF/ASL2.0'
        pickFirst 'META-INF/NOTICE'
        pickFirst 'META-INF/MANIFEST.MF'


        // https://github.com/ReactiveX/RxJava/issues/4445
        pickFirst 'META-INF/rxjava.properties'

        // This IMA hack is resolved with gradle wrapper version 2.3.3 - it's kept here for backward compatability - can be removed after a while.
        exclude 'jsr305_annotations/Jsr305_annotations.gwt.xml'
    }

    signingConfigs {
      release {
          storeFile file("../dist.keystore")
          storePassword ""
          keyAlias ""
          keyPassword ""
      }
    }

    buildTypes {
      debug {
          minifyEnabled true
          proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
          signingConfig signingConfigs.debug
      }
      release {
          minifyEnabled true
          proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
          signingConfig signingConfigs.release
      }
    }

    /**
     * See top-level build.gradle for:
     * - Dimension configuration of the specific build
     * - All product flavors mapping
     */
    flavorDimensions dimensionsConfig.keySet() as String[]

    productFlavors zappProductFlavorsMap
}

/*
 * Create alias for the generated mobile flavors combination,
 * to keep backward compatibility without modifying CircleCI code.
 * e.g.: "apk/mobile/app-mobile-debug.apk" will actually point to "apk/mobileGoogleZapp/debug/app-mobile-google-zapp-debug.apk"
 */
ext.createMobileShortcut = { runtimeBuildType ->
    if (dimensionsConfig.platform == 'mobile') {
        def vendor = dimensionsConfig.vendor
        def flavor = dimensionsConfig.flavor
        def mobilePath = "app/build/outputs/apk/mobile/" + runtimeBuildType
        def apkPath = mobilePath + "/app-mobile-" + runtimeBuildType + ".apk"
        def compatibilityApkPath = "app/build/outputs/apk/app-mobile-" + runtimeBuildType + ".apk"
        def mobileApk = new File(apkPath)
        if (!mobileApk.exists()) {
            new File(mobilePath).mkdirs()
            def baseDirectory = System.getProperty("user.dir")
            def existingApkPath = baseDirectory + '/app/build/outputs/apk/mobile' + vendor.capitalize() + flavor.capitalize() + '/' + runtimeBuildType + '/app-mobile-' + vendor + '-' + flavor + '-' + runtimeBuildType + '.apk'
            ['ln', '-s', existingApkPath, apkPath].execute().waitFor()
            ['ln', '-s', existingApkPath, compatibilityApkPath].execute().waitFor()
            new File("app/build/outputs/mapping/mobile/" + runtimeBuildType).mkdirs()
            ['ln', '-s', baseDirectory + '/app/build/outputs/mapping/mobile' + vendor.capitalize() + flavor.capitalize() + '/' + runtimeBuildType + '/mapping.txt', 'app/build/outputs/mapping/mobile/' + runtimeBuildType + '/mapping.txt'].execute().waitFor()
        }
    }
}

/**
 * Create alias for the generated tv flavors combination, see example in createMobileShortcut
 */
ext.createTvShortcut = { runtimeBuildType ->
    if (dimensionsConfig.platform == 'tv') {
        def vendor = dimensionsConfig.vendor
        def flavor = dimensionsConfig.flavor
        def tvPath = "app/build/outputs/apk/tv/" + runtimeBuildType
        def apkPath = tvPath + "/app-tv-" + runtimeBuildType + ".apk"
        def tvApk = new File(apkPath)
        if (!tvApk.exists()) {
            new File(tvPath).mkdirs()
            ['ln', '-s', System.getProperty("user.dir") + '/app/build/outputs/apk/tv' + vendor.capitalize() + flavor.capitalize() + '/' + runtimeBuildType + '/app-tv-' + vendor + '-' + flavor + '-' + runtimeBuildType + '.apk', apkPath].execute().waitFor()
            new File("app/build/outputs/mapping/tv/" + runtimeBuildType).mkdirs()
            ['ln', '-s', System.getProperty("user.dir") + '/app/build/outputs/mapping/tv' + vendor.capitalize() + flavor.capitalize() + '/' + runtimeBuildType + '/mapping.txt', 'app/build/outputs/mapping/tv/' + runtimeBuildType + '/mapping.txt'].execute().waitFor()
        }
    }
}

ext.dimensionedBuildTaskName = { suffix ->
    def capitalizedDimensions = dimensionsConfig.inject([]) { r, v -> r << v.value.capitalize() }.join("")
    'assemble' + capitalizedDimensions + suffix.capitalize()
}

/**
 * Helper closure for creating paths - no more slash bugs
 */
ext.combinePaths = { paths ->
    if (paths in String) paths = [paths] // be nice and return a proper path also with a single String
    def file = new File("")
    paths.each { path ->
        file = new File(file.getPath(), path)
    }
    file.getPath()
}


task assembleMobileDebug() {
    dependsOn dimensionedBuildTaskName('debug')
    doLast {
      createMobileShortcut('debug')
    }
}

task assembleMobileRelease() {
    dependsOn dimensionedBuildTaskName('release')
    doLast {
      createMobileShortcut('release')
    }
}

task assembleTvDebug() {
    dependsOn dimensionedBuildTaskName('debug')
    doLast {
      createTvShortcut('debug')
    }
}

task assembleTvRelease() {
    dependsOn dimensionedBuildTaskName('release')
    doLast {
      createTvShortcut('release')
    }
}

if (System.getenv("CIRCLECI")) {
    android.signingConfigs.debug.storeFile = file("../debug.keystore")
}

dependencies {
    implementation ("com.applicaster:JWPlayerPlugin:1.5.+") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:GrandeFamily:0.3.+") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:ChagresFamily:0.3.2") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:LermaFamily:0.3.+") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:RhineFamily:0.4.4") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:BottomTabBarMenu-Android:5.1.0") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:FirebaseAnalyticsPlugin:2.3.0") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:DanubeFamily:0.4.+") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:DFP-Plugin:0.3.+") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:GoogleAnalyticsProvider:3.1.0") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:protv-login-plugin:0.2.+") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:ColoradoFamily:0.4.0") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:ElbeFamily:0.9.+") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:urbanAirship-Android:2.0.0") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }

    api 'com.applicaster:applicaster-modular-sdk:100.0.0'
    implementation (project(':react-native-linear-gradient')) {
        exclude group: 'com.applicaster', module: 'applicaster-android-sdk'
    }
implementation (project(':react-native-svg')) {
        exclude group: 'com.applicaster', module: 'applicaster-android-sdk'
    }


}

apply plugin: 'com.google.android.gms.strict-version-matcher-plugin'
这是我的应用程序级渐变文件:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlin_version = '1.2.0'
    repositories {
        google()
        jcenter()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'

        classpath 'com.google.android.gms:strict-version-matcher-plugin:1.0.3'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven { url 'https://maven.google.com' }
        maven { url 'https://jitpack.io' }
        maven {
            credentials{
                username System.getenv("MAVEN_USERNAME")
                password System.getenv("MAVEN_PASSWORD")
            }
            url 'https://dl.bintray.com/applicaster-ltd/maven'
        }
        maven {
            url "$rootDir/node_modules/react-native/android"
        }
        maven {
            url "$rootDir/.m2"
        }


        maven {
            url "https://dl.bintray.com/applicaster-ltd/maven_plugins"

        }
        maven {
            url "https://mvn.jwplayer.com/content/repositories/releases/"

        }
        maven {
            url "https://dl.bintray.com/applicaster-ltd/maven_plugins/"

        }
        maven { url 'https://github.com/applicaster/APLiveScreenPro7-RN.git' }

    }
}

/**
 * Auto-generated from .env build configuration.
 */
ext.dimensionsConfig = [
    "platform": "mobile", // ["google", "amazon"]
    "vendor": "google", // ["mobile", "tv"]
    "flavor": "zapp", // ["zapp", "quickbrick"]
]

/**
 * Order of dimensions is critical! platform > vendor > flavor
 */
ext.zappProductFlavors = [
    mobile:     "platform",
    tv:         "platform",
    google:     "vendor",
    amazon:     "vendor",
    zapp:       "flavor",
    quickbrick: "flavor",
]

ext.zappProductFlavorsMap = {
    zappProductFlavors.each { key, dim ->
        "${key}" { dimension "${dim}" }
    }
}

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                flavorDimensions dimensionsConfig.keySet() as String[]
                productFlavors zappProductFlavorsMap
            }

            /**
             * Reject all variants that are not relevant for the current build -
             * you should be left with two only, debug and release.
             * e.g.: "mobileGoogleZappDebug/Release" or "tvAmazonZappDebug/Release" etc.
             */
            android.variantFilter { variant ->
                for (flavor in variant.getFlavors()) {
                    if (flavor.name != dimensionsConfig[flavor.dimension]) {
                        variant.setIgnore(true)
                    }
                }
            }
        }
    }
}
apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    buildToolsVersion "28.0.3"

    defaultConfig {
        applicationId "com.protvromania"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 273
        versionName "1.0.4-alpha.3"
        manifestPlaceholders = [
          app_name: "PROTV",
          fb_app_id: "1147926948637494",
        ]
        multiDexEnabled true
        renderscriptSupportModeEnabled true

        ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'


    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    lintOptions {
        abortOnError false
    }

    dexOptions {
        jumboMode = true
        preDexLibraries = false
        javaMaxHeapSize "4g"
    }

    packagingOptions {
        // Common
        pickFirst 'META-INF/NOTICE.txt'
        pickFirst 'META-INF/LICENSE.txt'
        pickFirst 'META-INF/LICENSE'
        pickFirst 'META-INF/ASL2.0'
        pickFirst 'META-INF/NOTICE'
        pickFirst 'META-INF/MANIFEST.MF'


        // https://github.com/ReactiveX/RxJava/issues/4445
        pickFirst 'META-INF/rxjava.properties'

        // This IMA hack is resolved with gradle wrapper version 2.3.3 - it's kept here for backward compatability - can be removed after a while.
        exclude 'jsr305_annotations/Jsr305_annotations.gwt.xml'
    }

    signingConfigs {
      release {
          storeFile file("../dist.keystore")
          storePassword ""
          keyAlias ""
          keyPassword ""
      }
    }

    buildTypes {
      debug {
          minifyEnabled true
          proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
          signingConfig signingConfigs.debug
      }
      release {
          minifyEnabled true
          proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
          signingConfig signingConfigs.release
      }
    }

    /**
     * See top-level build.gradle for:
     * - Dimension configuration of the specific build
     * - All product flavors mapping
     */
    flavorDimensions dimensionsConfig.keySet() as String[]

    productFlavors zappProductFlavorsMap
}

/*
 * Create alias for the generated mobile flavors combination,
 * to keep backward compatibility without modifying CircleCI code.
 * e.g.: "apk/mobile/app-mobile-debug.apk" will actually point to "apk/mobileGoogleZapp/debug/app-mobile-google-zapp-debug.apk"
 */
ext.createMobileShortcut = { runtimeBuildType ->
    if (dimensionsConfig.platform == 'mobile') {
        def vendor = dimensionsConfig.vendor
        def flavor = dimensionsConfig.flavor
        def mobilePath = "app/build/outputs/apk/mobile/" + runtimeBuildType
        def apkPath = mobilePath + "/app-mobile-" + runtimeBuildType + ".apk"
        def compatibilityApkPath = "app/build/outputs/apk/app-mobile-" + runtimeBuildType + ".apk"
        def mobileApk = new File(apkPath)
        if (!mobileApk.exists()) {
            new File(mobilePath).mkdirs()
            def baseDirectory = System.getProperty("user.dir")
            def existingApkPath = baseDirectory + '/app/build/outputs/apk/mobile' + vendor.capitalize() + flavor.capitalize() + '/' + runtimeBuildType + '/app-mobile-' + vendor + '-' + flavor + '-' + runtimeBuildType + '.apk'
            ['ln', '-s', existingApkPath, apkPath].execute().waitFor()
            ['ln', '-s', existingApkPath, compatibilityApkPath].execute().waitFor()
            new File("app/build/outputs/mapping/mobile/" + runtimeBuildType).mkdirs()
            ['ln', '-s', baseDirectory + '/app/build/outputs/mapping/mobile' + vendor.capitalize() + flavor.capitalize() + '/' + runtimeBuildType + '/mapping.txt', 'app/build/outputs/mapping/mobile/' + runtimeBuildType + '/mapping.txt'].execute().waitFor()
        }
    }
}

/**
 * Create alias for the generated tv flavors combination, see example in createMobileShortcut
 */
ext.createTvShortcut = { runtimeBuildType ->
    if (dimensionsConfig.platform == 'tv') {
        def vendor = dimensionsConfig.vendor
        def flavor = dimensionsConfig.flavor
        def tvPath = "app/build/outputs/apk/tv/" + runtimeBuildType
        def apkPath = tvPath + "/app-tv-" + runtimeBuildType + ".apk"
        def tvApk = new File(apkPath)
        if (!tvApk.exists()) {
            new File(tvPath).mkdirs()
            ['ln', '-s', System.getProperty("user.dir") + '/app/build/outputs/apk/tv' + vendor.capitalize() + flavor.capitalize() + '/' + runtimeBuildType + '/app-tv-' + vendor + '-' + flavor + '-' + runtimeBuildType + '.apk', apkPath].execute().waitFor()
            new File("app/build/outputs/mapping/tv/" + runtimeBuildType).mkdirs()
            ['ln', '-s', System.getProperty("user.dir") + '/app/build/outputs/mapping/tv' + vendor.capitalize() + flavor.capitalize() + '/' + runtimeBuildType + '/mapping.txt', 'app/build/outputs/mapping/tv/' + runtimeBuildType + '/mapping.txt'].execute().waitFor()
        }
    }
}

ext.dimensionedBuildTaskName = { suffix ->
    def capitalizedDimensions = dimensionsConfig.inject([]) { r, v -> r << v.value.capitalize() }.join("")
    'assemble' + capitalizedDimensions + suffix.capitalize()
}

/**
 * Helper closure for creating paths - no more slash bugs
 */
ext.combinePaths = { paths ->
    if (paths in String) paths = [paths] // be nice and return a proper path also with a single String
    def file = new File("")
    paths.each { path ->
        file = new File(file.getPath(), path)
    }
    file.getPath()
}


task assembleMobileDebug() {
    dependsOn dimensionedBuildTaskName('debug')
    doLast {
      createMobileShortcut('debug')
    }
}

task assembleMobileRelease() {
    dependsOn dimensionedBuildTaskName('release')
    doLast {
      createMobileShortcut('release')
    }
}

task assembleTvDebug() {
    dependsOn dimensionedBuildTaskName('debug')
    doLast {
      createTvShortcut('debug')
    }
}

task assembleTvRelease() {
    dependsOn dimensionedBuildTaskName('release')
    doLast {
      createTvShortcut('release')
    }
}

if (System.getenv("CIRCLECI")) {
    android.signingConfigs.debug.storeFile = file("../debug.keystore")
}

dependencies {
    implementation ("com.applicaster:JWPlayerPlugin:1.5.+") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:GrandeFamily:0.3.+") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:ChagresFamily:0.3.2") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:LermaFamily:0.3.+") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:RhineFamily:0.4.4") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:BottomTabBarMenu-Android:5.1.0") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:FirebaseAnalyticsPlugin:2.3.0") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:DanubeFamily:0.4.+") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:DFP-Plugin:0.3.+") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:GoogleAnalyticsProvider:3.1.0") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:protv-login-plugin:0.2.+") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:ColoradoFamily:0.4.0") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:ElbeFamily:0.9.+") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }
    implementation ("com.applicaster:urbanAirship-Android:2.0.0") {
        exclude group:    'com.applicaster', module: 'applicaster-android-sdk'
        exclude group:    'com.applicaster', module: 'zapp-root-android'
    }

    api 'com.applicaster:applicaster-modular-sdk:100.0.0'
    implementation (project(':react-native-linear-gradient')) {
        exclude group: 'com.applicaster', module: 'applicaster-android-sdk'
    }
implementation (project(':react-native-svg')) {
        exclude group: 'com.applicaster', module: 'applicaster-android-sdk'
    }


}

apply plugin: 'com.google.android.gms.strict-version-matcher-plugin'
apply插件:“com.android.application”
安卓{
编译DK28版
buildToolsVersion“28.0.3”
默认配置{
应用程序ID“com.protvromania”
明斯克版本19
targetSdkVersion 28
版本代码273
版本名称“1.0.4-alpha.3”
占位符=[
应用程序名称:“PROTV”,
fb_应用程序_id:“114792694848637494”,
]
多索引启用真
renderscriptSupportModeEnabled true
ndk.ABI过滤器“armeabi-v7a”、“arm64-v8a”、“x86”、“x86_64”
}
编译选项{
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
林特选项{
异常错误
}
德克斯选项{
巨型模型=真
preDexLibraries=false
javaMaxHeapSize“4g”
}
包装选项{
//普通的
pickFirst'META-INF/NOTICE.txt'
选择第一个“META-INF/LICENSE.txt”
选择第一个“META-INF/许可证”
选择第一个“META-INF/ASL2.0”
选择第一个“META-INF/通知”
选择第一个“META-INF/MANIFEST.MF”
// https://github.com/ReactiveX/RxJava/issues/4445
选择第一个“META-INF/rxjava.properties”
//这种IMA攻击通过gradle包装器版本2.3.3得到解决——它保留在这里是为了向后兼容——可以在一段时间后删除。
排除'jsr305_annotations/jsr305_annotations.gwt.xml'
}
签名配置{
释放{
存储文件文件(“../dist.keystore”)
存储密码“”
密钥别名“”
密钥密码“”
}
}
建筑类型{
调试{
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard rules.pro'
signingConfig signingConfigs.debug
}
释放{
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard rules.pro'
signingConfig signingConfigs.release
}
}
/**
*有关以下内容,请参见顶级build.gradle:
*-特定生成的维度配置
*-所有产品口味映射
*/
flavorDimensions维度Config.keySet()作为字符串[]
产品风味zappProductFlavorsMap
}
/*
*为生成的移动口味组合创建别名,
*在不修改CircleCI代码的情况下保持向后兼容性。
*例如:“apk/mobile/app-mobile-debug.apk”实际上会指向“apk/mobileGoogleZapp/debug/app-mobile-google-zapp-debug.apk”
*/
ext.createMobileShortcut={runtimeBuildType->
如果(dimensionsConfig.platform=='mobile'){
def vendor=尺寸config.vendor
def flavor=维度config.flavor
def mobilePath=“app/build/outputs/apk/mobile/”+runtimeBuildType
def apkPath=mobilePath+“/app mobile-“+runtimeBuildType+”.apk”
def compatibilityApkPath=“app/build/outputs/apk/app mobile-“+runtimeBuildType+”.apk”
def mobileApk=新文件(apkPath)
如果(!mobileApk.exists()){
新文件(mobilePath).mkdirs()
def baseDirectory=System.getProperty(“user.dir”)
def existingApkPath=baseDirectory++'/app/build/outputs/apk/mobile'+vendor.capitalize()+flavor.capitalize()++'/'+runtimeBuildType++'/app mobile-'+vendor+'-'+flavor+'-'+runtimeBuildType+'.apk'
['ln','-s',存在apkPath,apkPath].execute().waitFor()
['ln','-s',existingApkPath,compatibilityApkPath].execute().waitFor()
新文件(“app/build/outputs/mapping/mobile/”+runtimeBuildType).mkdirs()
['ln'、'-s',baseDirectory+/app/build/outputs/mapping/mobile'+vendor.capitalize()+flavor.capitalize()+'/'+runtimeBuildType+/mapping.txt',app/build/outputs/mapping/mobile/'+runtimeBuildType+//mapping.txt']执行().waitFor()
}
}
}
/**
*为生成的tv口味组合创建别名,请参见createMobileShortcut中的示例
*/
ext.createTvShortcut={runtimeBuildType->
if(dimensionsConfig.platform==“tv”){
def vendor=尺寸config.vendor
def flavor=维度config.flavor
def tvPath=“app/build/outputs/apk/tv/”+runtimeBuildType
def apkPath=tvPath+“/app tv-“+runtimeBuildType+”.apk”
def tvApk=新文件(apkPath)
如果(!tvApk.exists()){
新文件(tvPath).mkdirs()
['ln','-s',System.getProperty(“user.dir”)++'/app/build/outputs/apk/tv'+vendor.capitalize()+flavor.capitalize()++'/'+runtimeBuildType++'/app-tv-'+vendor++'+flavor++'+runtimeBuildType++'.apk',apkPath].execute().waitFor()
新文件(“app/build/outputs/mapping/tv/”+runtimeBuildType).mkdirs()
['ln','-s',System.getProperty(“user.dir”)++'/app/build/outputs/mapping/tv'+vendor.capitalize()+flavor.capitalize()++'/'+runtimeBuildType++'/mapping.txt',app/build/outputs/mapping/tv/'+runtimeBuildType++'/mapping.txt'].execute().waitFor()
}
}
}
ext.dimensionedBuildTaskName={后缀->
def capitalizedDimensions=维度配置注入([]){r,v->r
if(paths in String)paths=[paths]//请友好,并使用单个字符串返回正确的路径
def文件=新文件(“”)
paths.each{path->
file=新文件(file.getPath(),path)
}
file.getPath()文件
}
任务集合emobiledbug(){
dependsOn dimensionedBuildTaskName('debug')
多拉斯特{
createMobileShortcut(“调试”)
}
}
任务集合emobilerelease(){
dependsOn维度BuildTaskna