2017-08-13 133 views
7

我正在以下回溯,當我移植到Android 3.0的工作室Android的工作室3.0 - 搖籃同步失敗externalNativeBuild

* 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') 
} 

任何幫助非常感謝!

回答

2

我搬出了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 
0

嘗試api更換implementation只爲最後兩個項目的依賴關係:

  1. commonandroidutils
  2. wimutils

文檔指出:

的依賴可在編譯的模塊時間,並且它在編譯時和運行時也可供模塊的使用者使用。此配置的行爲與compile(現在已棄用)類似,您通常只應在庫模塊中使用此配置。應用程序模塊應使用implementation,除非您想要將其API提供給單獨的測試模塊。

參考:Migrate to Android Plugin for Gradle 3.0.0

不知道,但嘗試一下。希望能幫助到你。

0

我不知道這是如何可能的。看起來您在Gradle插件本身和提供WaitableExecutor類的依賴關係之間存在不匹配。

但是您提到了Gradle 1.5,這是一個問題。

插件版本0.3是兼容的1.3-1.4搖籃新版本的發佈,上週0.4與搖籃兼容1.6+

確保您使用0.4和新的搖籃版本。