2017-05-18 30 views
8

Tôi đã cố tải dự án của mình trong Android Studio 3.0 Canary 1 mới này. Nó được chạy một cách hoàn hảo trong trước Android Studio Version 2.4 preview của tôi 7android studio 3.0 Canary 1: dự án làm mới không thành công

Đây là lỗi tôi đang phải đối mặt:

Error:Could not resolve all dependencies for configuration ':sample:devCompileClasspath'. 
Project :sample declares a dependency from configuration 'devCompile' to configuration 'dev' which is not declared in the descriptor for project :library. 

configs gradle của tôi là như sau:

Dự án Cấp xây dựng Gradle:

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:3.0.0-alpha1' 
     classpath 'com.google.gms:google-services:3.0.0' 

     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

Thư viện Mô-đun Gradle:

apply plugin: 'com.android.library' 
apply plugin: 'checkstyle' 

android { 
    publishNonDefault true 

    compileSdkVersion 25 
    buildToolsVersion "25.0.3" 

    defaultConfig { 
     minSdkVersion 19 
     targetSdkVersion 25 
     versionName project.VERSION_NAME 
     versionCode project.VERSION_CODE.toInteger() 
    } 

    packagingOptions { 
     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/NOTICE.txt' 
     exclude 'AUTHORS' 
     exclude 'NOTICE' 
    } 

    buildTypes { 
     debug { 
      debuggable true 
     } 

     dev.initWith(buildTypes.debug) 

     staging.initWith(buildTypes.debug) 

     release { 
      minifyEnabled false 
      shrinkResources false 
     } 
    } 
} 

repositories { 
    flatDir { 
     dirs 'libs' 
    } 
    mavenLocal() 
    jcenter() 
} 

def ANDROID_SUPPORT_VERSION = "25.3.1" 
def OK_HTTP3_VERSION = "3.6.0" 
def GLIDE_VERSION = "3.7.0" 
def GSON_VERSION = "2.8.0" 
def AWS_KINESIS_VERSION = "2.4.2" 
def PLAY_SERVICE_VERSION = "10.2.4" 

dependencies { 
    compile(name: 'library-release', ext: 'aar') 
    compile "com.android.support:appcompat-v7:$ANDROID_SUPPORT_VERSION" 
    compile "com.android.support:design:$ANDROID_SUPPORT_VERSION" 
    compile "com.android.support:cardview-v7:$ANDROID_SUPPORT_VERSION" 
    compile "com.squareup.okhttp3:okhttp:$OK_HTTP3_VERSION" 
    compile "com.squareup.okhttp3:okhttp-urlconnection:$OK_HTTP3_VERSION" 
    compile "com.squareup.okhttp3:logging-interceptor:$OK_HTTP3_VERSION" 
    compile "com.google.code.gson:gson:$GSON_VERSION" 
    compile "com.google.firebase:firebase-messaging:$PLAY_SERVICE_VERSION" 
    compile "com.google.android.gms:play-services-location:$PLAY_SERVICE_VERSION" 
    compile "com.github.bumptech.glide:glide:$GLIDE_VERSION" 
    checkstyle('com.puppycrawl.tools:checkstyle:7.6.1') 
    compile "com.amazonaws:aws-android-sdk-kinesis:$AWS_KINESIS_VERSION" 
} 
apply plugin: 'com.google.gms.google-services' 

task checkstyle(type: Checkstyle) { 
    showViolations = true 
    configFile file("config/checkstyle/checkstyle.xml") 

    description 'applies the checkstyle config to the java files' 
    source 'src/main/java' 
    include '**/*.java' 
    exclude '**/gen/**' 

    // empty classpath 
    classpath = files() 
} 

preBuild.dependsOn('checkstyle') 

App Mô-đun Gradle:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.3" 

    defaultConfig { 
     applicationId "com.sample.and" 
     minSdkVersion 19 
     targetSdkVersion 25 
     versionName project.VERSION_NAME 
     versionCode project.VERSION_CODE.toInteger() 
     android.defaultConfig.vectorDrawables.useSupportLibrary = true 
    } 

    buildTypes { 
     debug { 
      debuggable true 
      minifyEnabled false 
      shrinkResources false 
     } 

     dev.initWith(buildTypes.debug) 
     dev { 
      applicationIdSuffix ".dev" 
     } 

     staging.initWith(buildTypes.debug) 
     staging { 
      applicationIdSuffix ".staging" 
     } 

     release { 
      shrinkResources false 
      minifyEnabled false 
     } 
    } 
} 

repositories { 
    flatDir{ 
     dirs '../library/libs' 
    } 
    mavenLocal() 
    jcenter() 
} 

configurations { 
    releaseCompile 
    stagingCompile 
    devCompile 
} 

dependencies { 
    compile 'com.android.support:appcompat-v7:25.3.1' 
    releaseCompile (project(path: ':library', configuration: 'release')) { 
     transitive = true 
    } 
    stagingCompile (project(path: ':library', configuration: 'staging')) { 
     transitive = true 
    } 
    devCompile (project(path: ':library', configuration: 'dev')) { 
     transitive = true 
    } 
} 

Có ai phải đối mặt với cùng một vấn đề?

Trả lời

3

Hãy nhìn vào những lời khuyên di cư: Use Flavor Dimensions for variant-aware dependency management

Vì nó rằng:

Plugin 3.0.0 includes a new dependency mechanism that automatically matches variants when consuming a library. This means an app's debug variant automatically consumes a library's debug variant, and so on. It also works when using flavors—an app's redDebug variant will consume a library's redDebug variant. To make this work, the plugin now requires that all flavors belong to a named flavor dimension —even if you intend to use only a single dimension. Otherwise, you will get the following build error:

Error:All flavors must now belong to a named flavor dimension. 
The flavor 'flavor_name' is not assigned to a flavor dimension. 

To resolve this error, assign each flavor to a named dimension, as shown in the sample below. Because dependency matching is now taken care of by the plugin, you should name your flavor dimensions carefully. For example, if all your app and library modules use the foo dimension, you'll have less control over which flavors are matched by the plugin.

// Specifies a flavor dimension. flavorDimensions "color" 

productFlavors { 
     red { 
     // Assigns this product flavor to the 'color' flavor dimension. 
     // This step is optional if you are using only one dimension. 
     dimension "color" 
     ... 
    } 

    blue { 
     dimension "color" 
     ... 
    } 
+0

Ok cám ơn. Tôi đang xem xét nó .. –

2
flavorDimensions "mode" 
productFlavors { 
    dev { 
     // Assigns this product flavor to the "mode" flavor dimension. 
     dimension "mode" 
     versionName "1.2" 
     versionCode 02 
    } 
    uat { 
     // Assigns this product flavor to the "mode" flavor dimension. 
     dimension "mode" 
     versionName "1.2" 
     versionCode 2 
    } 
    live { 
     // Assigns this product flavor to the "mode" flavor dimension. 
     dimension "mode" 
     versionName "1.0.1" 
     versionCode 01 
    } 
} 

này đang làm việc cho tôi !! Trong trường hợp của bạn, bạn chỉ nên thực hiện một biến flavorDimensions và gán giá trị bên trong khối dev

flavorDimensions "anyvalue"

dev.initWith (buildTypes.debug)

dev { 
     dimension "anyvalue" 
     applicationIdSuffix ".dev" 
    } 

Điều này sẽ giúp.

+0

Lưu ý rằng bạn cũng cần xác định loại thứ nguyên đó ở cấp cao hơn 'productFlavors'. Giống như vậy: flavorDimensions "mode" productFlavors {...} – ClayHerendeen

Các vấn đề liên quan