如何导入Android项目作为库,而不是编译为apk(Android工作室1.0)

我试图导入一个项目(projLib)作为依赖另一个项目(projAPK)。

projAPK gradle有这样的:

dependencies { compile project(':libs:NewsAPI') compile project(':projLib') } 

但是当我同步的gradle它给这个错误:

错误:依赖项Android_2015:projLib:未指定的项目projAPKparsing为一个APK档案,不支持作为编译依赖。 文件:/Users/myname/Documents/Development/Android_2015/libs/projAPK/build/outputs/apk/projLib-release-unsigned.apk

所以我想这有两个解决scheme:

  1. 不知何故,使gradle认为projLib是一个库,不应该被编译到apk
  2. 不知何故使gradle不明确地编译projLib

问题是,我找不到如何做到这一点。 如果你们可以帮忙的话,会很棒

projLib的build.gradle文件中,你会看到如下的语句:

 apply plugin: 'com.android.application' 

它告诉Gradle将它作为一个应用程序来构build,生成一个APK。 如果您将其更改为:

 apply plugin: 'com.android.library' 

它将build立一个图书馆,产生一个AAR,它应该工作。

如果你还需要projLib来生成一个单独的APK,那么你将不得不做一些重构,把你需要的通用代码拉出到第三个库模块,并使两个APK都依赖于它。

库不能设置applicationId ,所以如果你看到一个错误信息,就从库的构build脚本中删除它。

在模块gradle文件中

apply plugin: 'com.android.application' replace apply plugin: 'com.android.application' apply plugin: 'com.android.library'

然后删除 applicationId "xxx.xxx.xxxx"

清洁和build设

只需将这些行添加到库gradle文件并删除其他部分

 apply plugin: 'com.android.library' android { compileSdkVersion 23 buildToolsVersion '23.0.2' } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.squareup.picasso:picasso:2.4.0' compile 'com.google.code.gson:gson:2.2.4' compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:gridlayout-v7:23.1.1' ,... }