当我迁移到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'), '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'
...
....
} // end of android

关于Android Studio 3.0-Gradle Sync的externalNativeBuild失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45656826/

10-12 00:26
查看更多