Gradle 将模块导入 Android 项目后构建失败
Gradle Build fails after importing modules into Android project
我正在尝试从 here 导入 Agora.IO
模块来实现屏幕共享功能。在提供的 link 克隆存储库并将其添加为我的项目的 Module
后,我能够正确获取所有 imports
。我需要的唯一导入是 import io.agora.api.*
,但构建失败并显示以下消息。
Execution failed for task ':lib-switch-external-video:compileDebugAidl'.
> Could not resolve all files for configuration ':lib-switch-external-video:debugCompileClasspath'.
> Could not find com.github.agorabuilder:native-full-sdk:3.4.2.
Required by:
project :lib-switch-external-video > project :lib-component
Possible solution:
- Declare repository providing the artifact, see the documentation at
https://docs.gradle.org/current/userguide/declaring_repositories.html
This is how my project strucure looks after importing the modules:
虽然我对 multi-module
应用程序还没有多少经验,但我已经将它们添加到我的 settings.gradle
文件中:
settings.gradle
rootProject.name = "dummy"
include ':app'
include ':lib-push-externalvideo'
include ':lib-screensharing'
include ':lib-player-helper'
include ':lib-stream-encrypt'
include ':lib-component'
include ':lib-raw-data'
include ':lib-switch-external-video'
在我发现的 lib-component
模块的默认 build.gradle
中
api 'com.github.agorabuilder:native-full-sdk:3.4.2'
api 'io.agora:agoraplayer:1.2.4'
在每个模块的 build.gradle
中,已经添加了其中一个:
implementation project(path: ':lib-component')
or
api project(path: ':lib-component')
我选择导入这些模块的唯一原因是我无法找到支持这些导入的 gradle
依赖项。如果有这样的依赖,请告诉我!
邮件中确实提到了这个问题。 Gradle 无法解析模块中添加的任何存储库中的 com.github.agorabuilder:native-full-sdk:3.4.2
依赖项。
你在那里定义了 jitpack repo 吗?
repositories {
maven { url 'https://www.jitpack.io' }
// Other repositories you need
}
此外,与您的问题不同,您的 settings.gradle 文件似乎有点不同。我假设您已将所有源代码复制到您的项目中。
相反,在这种情况下,我会选择 link 它们而不是复制源代码。为此,您可以使用
include ':lib-component'
project(':lib-component').projectDir = new File('/path/to/cloned/repo/lib-component/')
当你在调试你看起来是的库时,更喜欢这个。这样,您就可以在此构建中添加确切的模块,并且在此处进行的任何更改都会实际发生在该项目中。允许您简单地提交或更改该存储库中的分支。
我正在尝试从 here 导入 Agora.IO
模块来实现屏幕共享功能。在提供的 link 克隆存储库并将其添加为我的项目的 Module
后,我能够正确获取所有 imports
。我需要的唯一导入是 import io.agora.api.*
,但构建失败并显示以下消息。
Execution failed for task ':lib-switch-external-video:compileDebugAidl'.
> Could not resolve all files for configuration ':lib-switch-external-video:debugCompileClasspath'.
> Could not find com.github.agorabuilder:native-full-sdk:3.4.2.
Required by:
project :lib-switch-external-video > project :lib-component
Possible solution:
- Declare repository providing the artifact, see the documentation at
https://docs.gradle.org/current/userguide/declaring_repositories.html
This is how my project strucure looks after importing the modules:
虽然我对 multi-module
应用程序还没有多少经验,但我已经将它们添加到我的 settings.gradle
文件中:
settings.gradle
rootProject.name = "dummy"
include ':app'
include ':lib-push-externalvideo'
include ':lib-screensharing'
include ':lib-player-helper'
include ':lib-stream-encrypt'
include ':lib-component'
include ':lib-raw-data'
include ':lib-switch-external-video'
在我发现的 lib-component
模块的默认 build.gradle
中
api 'com.github.agorabuilder:native-full-sdk:3.4.2'
api 'io.agora:agoraplayer:1.2.4'
在每个模块的 build.gradle
中,已经添加了其中一个:
implementation project(path: ':lib-component')
or
api project(path: ':lib-component')
我选择导入这些模块的唯一原因是我无法找到支持这些导入的 gradle
依赖项。如果有这样的依赖,请告诉我!
邮件中确实提到了这个问题。 Gradle 无法解析模块中添加的任何存储库中的 com.github.agorabuilder:native-full-sdk:3.4.2
依赖项。
你在那里定义了 jitpack repo 吗?
repositories {
maven { url 'https://www.jitpack.io' }
// Other repositories you need
}
此外,与您的问题不同,您的 settings.gradle 文件似乎有点不同。我假设您已将所有源代码复制到您的项目中。
相反,在这种情况下,我会选择 link 它们而不是复制源代码。为此,您可以使用
include ':lib-component'
project(':lib-component').projectDir = new File('/path/to/cloned/repo/lib-component/')
当你在调试你看起来是的库时,更喜欢这个。这样,您就可以在此构建中添加确切的模块,并且在此处进行的任何更改都会实际发生在该项目中。允许您简单地提交或更改该存储库中的分支。