如何导入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:
- 不知何故,使gradle认为projLib是一个库,不应该被编译到apk
- 不知何故使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' ,... }