Android Studio Library project error

David picture David · Oct 25, 2015 · Viewed 14k times · Source

I have imported a module into my project. When i rebuilt the project , AS gave me an error saying Warning:Dependency Lib:unspecified on project app resolves to an APK archive which is not supported as a compilation dependency. I searched and changed apply plugin: 'com.android.application' to apply plugin: 'com.android.library' and also removed ApplicationId from defaultConfig. Yet i am getting this same error "Warning:Dependency Lib:unspecified on project app resolves to an APK archive which is not supported as a compilation dependency." Can any one help me?

Here is my gradle code:

apply plugin: 'com.android.library'

    android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        minSdkVersion 12
        targetSdkVersion 23
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    }

    dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.android.support:design:23.1.0'
    compile project(':DimenLib')
    }

Answer

Gabriele Mariotti picture Gabriele Mariotti · Oct 25, 2015

"Warning:Dependency Lib:unspecified on project app resolves to an APK archive which is not supported as a compilation dependency."

It happens when you are trying to add a dependency which is an APK.

Using:

apply plugin: 'com.android.application'

tells Gradle to build it as an application, generating an APK.

Using:

apply plugin: 'com.android.library'

it will build as a library, generating an AAR.

In your case, it seems that you are changing the plugin in the wrong place.
It seems to be your main module.

apply plugin: 'com.android.library'

dependencies {
    compile project(':DimenLib')
}

Move the apply plugin: 'com.android.library' in your DimenLib.