微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android Studio 3.0 – 对于externalNativeBuild,Gradle Sync失败

当我迁移到 Android studio 3.0时,我得到以下回溯
* What went wrong:
Could not determine the dependencies of task ':celltower:compileExternalNativeBuildJavaWithJavac'.
> Could not resolve all task dependencies for configuration ':celltower:externalNativeBuildCompileClasspath'.
   > Could not resolve project :commonandroidutils.
     required by:
         project :celltower
      > Unable to find a matching configuration of project :commonandroidutils:
          - Configuration 'debugApiElements':
              - required com.android.build.api.attributes.BuildTypeAttr 'externalNativeBuild' and found incompatible value 'debug'.
              - required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
              - Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but wasn't required.
              - required org.gradle.api.attributes.Usage 'java-api' and found compatible value 'java-api'.
          - Configuration 'debugRuntimeElements':
              - required com.android.build.api.attributes.BuildTypeAttr 'externalNativeBuild' and found incompatible value 'debug'.
              - required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
              - Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but wasn't required.
              - required org.gradle.api.attributes.Usage 'java-api' and found incompatible value 'java-runtime'.
          - Configuration 'releaseApiElements':
              - required com.android.build.api.attributes.BuildTypeAttr 'externalNativeBuild' and found incompatible value 'release'.
              - required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
              - Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but wasn't required.
              - required org.gradle.api.attributes.Usage 'java-api' and found compatible value 'java-api'.
          - Configuration 'releaseRuntimeElements':
              - required com.android.build.api.attributes.BuildTypeAttr 'externalNativeBuild' and found incompatible value 'release'.
              - required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
              - Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but wasn't required.
              - required org.gradle.api.attributes.Usage 'java-api' and found incompatible value 'java-runtime'.
   > Could not resolve project :wimtutils.
     required by:
         project :celltower
      > Unable to find a matching configuration of project :wimtutils:
          - Configuration 'debugApiElements':
              - required com.android.build.api.attributes.BuildTypeAttr 'externalNativeBuild' and found incompatible value 'debug'.
              - required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
              - Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but wasn't required.
              - required org.gradle.api.attributes.Usage 'java-api' and found compatible value 'java-api'.
          - Configuration 'debugRuntimeElements':
              - required com.android.build.api.attributes.BuildTypeAttr 'externalNativeBuild' and found incompatible value 'debug'.
              - required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
              - Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but wasn't required.
              - required org.gradle.api.attributes.Usage 'java-api' and found incompatible value 'java-runtime'.
          - Configuration 'releaseApiElements':
              - required com.android.build.api.attributes.BuildTypeAttr 'externalNativeBuild' and found incompatible value 'release'.
              - required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
              - Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but wasn't required.
              - required org.gradle.api.attributes.Usage 'java-api' and found compatible value 'java-api'.
          - Configuration 'releaseRuntimeElements':
              - required com.android.build.api.attributes.BuildTypeAttr 'externalNativeBuild' and found incompatible value 'release'.
              - required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
              - Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but wasn't required.
              - required org.gradle.api.attributes.Usage 'java-api' and found incompatible value 'java-runtime'.

我的build.gradle就在这里.

apply plugin: 'com.android.library'

android {
    compileSdkVersion 26
    buildToolsversion "26.0.1"

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        externalNativeBuild {
            ndkBuild {
            }
        }

        ndk {
//            abiFilters   "armeabi-v7a","x86"
            abiFilters "armeabi-v7a"
            moduleName "HelloJNI"
            //ldLibs.addAll(["android","log"])
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
        }
        debug {
            debuggable true
            minifyEnabled false

            ndk {
                abiFilters   "armeabi-v7a","x86"
                moduleName "HelloJNI"
            }
        }
        externalNativeBuild {
            ndkBuild {
                path "src/main/jni/Android.mk"
            }
        }
    }

    buildTypeMatching 'debug','release'

    compileOptions {
        targetCompatibility 1.8
        sourceCompatibility 1.8
    }
}

ext {
    retrofitVersion = '2.1.0'
    rxJavaVersion = '1.2.1'
    rxAndroidVersion = '1.2.1'
    okHttpVersion = '3.4.1'
    playServicesversion = '9.8.0'
    fireBaseVersion = '9.8.0'
    daggerVersion = '2.7'
    appCompatV7Version = '26.0.1'
}

dependencies {
    implementation filetree(dir: 'libs',include: ['*.jar'])
    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2',{
        exclude group: 'com.android.support',module: 'support-annotations'
    })
    implementation "com.android.support:support-annotations:$appCompatV7Version"
    implementation 'com.google.code.gson:gson:2.7'
    testImplementation 'junit:junit:4.12'
    implementation 'com.squareup.retrofit:retrofit:1.9.0'
    implementation 'com.jakewharton.retrofit:retrofit1-okhttp3-client:1.0.2'
    implementation "com.squareup.retrofit2:retrofit:$retrofitVersion"
    implementation "com.squareup.retrofit2:adapter-rxjava:$retrofitVersion"
    implementation "com.squareup.retrofit2:converter-gson:$retrofitVersion"
    implementation 'com.readystatesoftware.sqliteasset:sqliteassethelper:+'
    implementation project(':commonandroidutils')
    implementation project(':wimtutils')
}

任何帮助深表感谢!

解决方法

我移出了buildTypes之外的externalNativeBuild并将它放在android下.它开始工作了.
android {
....
...
   buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'),"x86"
                moduleName "HelloJNI"
            }
        }
    }

    externalNativeBuild {
        ndkBuild {
            path "src/main/jni/Android.mk"
        }
    }

    buildTypeMatching 'debug','release'
...
....
} // end of android

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐