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

projAPK gradle说:

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

但是当我同步Gradle时,它给出这个错误:

错误:依赖项Android_2015:projLib:projAPK项目上的未指定项解析为不支持作为编译依赖项的APK存档.文件:/Users/myname/Documents/Development/Android_2015/libs/projAPK/build/outputs/apk/projLib release unsigned.apk

所以我想有两种解决方案:

  1. 不知何故让Gradle认为projLib是一个不应该编译成apk库
  2. 以某种方式使Gradle不显式编译projLib

问题是,我找不到任何方法.

推荐答案

projLib的建造中.gradle文件,你会看到这样的声明:

apply plugin: 'com.android.application'

它告诉Gradle将其构建为应用程序,从而生成一个APK.如果将其更改为以下内容:

apply plugin: 'com.android.library'

它将建成一个图书馆,生成一个AAR,它应该能工作.

如果还需要projLib来生成一个单独的APK,那么必须进行一些重构,将所需的公共代码提取到第三个库模块中,并使两个APK都依赖于它.

库不允许设置applicationId,因此如果您看到这样的错误消息,请将其从库的构建脚本中删除.

Android相关问答推荐

懒惰列的滚动到项目不按预期工作'

Yarn 机器人导致活动未找到,但Gradlew Run工作正常

如何在Android Studio中将我的Java-库&库设置为Kotlin库

Jetpack Compose:带芯片的Textfield

更改选定的切换轨道 colored颜色

制作圆形SupportMapFragment

面向Jetpack Compose的可组合放置问题

如何在Android Studio中禁用文件中的Github用户名引用?

如何删除房间数据库?

当手表与手机断开连接时,有没有办法在我的 Wear OS 应用程序中显示操作系统级别的图标?

为什么我的应用程序使用这些信息?

compose 导航参数字符串包含花括号?

Jetpack compose :使用 rememberSaveable 时未应用待处理的合成

AttributionSource 需要 android.permission.BLUETOOTH_SCAN 权限的问题

LazyColumn 项目,隐式接收器无法在此上下文中调用单元

在 Kotlin 中循环遍历字符串并用新行替换句号

如何在 Android 上移动 EditText 上的图标?

Jetpack Compose:如何绘制这样的路径/线

如何在包含 Jetpack Compose 内容的布局中使用权重

Jetpack Compose:对角拆分卡片并将内容放入其中