android - JitPack 不会使用 GitHub 存储库 - 包含演示该问题的示例存储库

标签 android android-studio gradle jitpack

每次我尝试 fork 一个 Android 库并通过 JitPack 使用它时,我都会遇到错误,然后放弃并选择其他方式来自定义和使用该库。这一次我想弄清楚这个问题并创建了一个隔离问题的基本应用程序。你能下载下面的 repo 并告诉我我做错了什么吗?

在这个 repo 中是一个非常基本的 Android 应用程序:https://github.com/gazialankus/JitpackNotWorking .我只是在 Android Studio 中创建了一个新的 Android 应用程序,并按照 https://jitpack.io/ 中的说明进行操作。添加 https://github.com/ArthurHub/Android-Image-Cropper github repo 作为依赖项。我在根目录中添加了 JitPack Maven 存储库 build.gradle并在应用程序中添加库依赖项 build.gradle像这样:

compile 'com.github.ArthurHub:android-image-cropper:2.4.5'

Gradle 同步正常,但 android-image-cropper-2.4.5 未显示在项目 View 中的外部库下。因此,应用程序不会出现此错误:

Error:(6, 38) error: package com.theartofdev.edmodo.cropper does not exist

正如我在应用程序 build.gradle 的评论中指出的那样,像这样使用没有 JitPack 的库就可以了:

compile 'com.theartofdev.edmodo:android-image-cropper:2.4.5'

我想也许 JitPack 无法构建这个 repo。然而,JitPack log for this repository说“好的”。

Gradle和Java版本:在Android Studio菜单File > Project Structure > Project中,Gradle版本为3.3,Android Plugin Version为2.3.3。在同一对话框中,SDK Location 选项卡显示正在使用 C:\Program Files\Android\Android Studio\jre 中的嵌入式 JDK。

> "C:\Program Files\Android\Android Studio\jre\bin\java.exe" -version 
openjdk version "1.8.0_112-release"
OpenJDK Runtime Environment (build 1.8.0_112-release-b06)
OpenJDK 64-Bit Server VM (build 25.112-b06, mixed mode)

Android Studio 中没有待处理的更新。

您能否下载并构建这个隔离问题的存储库并告诉我我做错了什么?同样,演示问题的存储库在这里:https://github.com/gazialankus/JitpackNotWorking

谢谢。

编辑:尝试使用我的一个分支并尝试使库对 JitPack 更加友好,但仍然是同样的问题。请查看 repo 中的提交。

已解决:请参阅 https://github.com/gazialankus/JitpackNotWorking/blob/master/README.md更多细节。

最佳答案

我认为问题是组和版本。

build log您可以看到在 Gradle 调用中包含 -Pgroup=com.github.ArthurHub-Pversion=2.4.5。但在日志中,您也会看到 Found artifact: com.theartofdev.edmodo:android-image-cropper:2.4.5-SNAPSHOT 实际上应该是 Found artifact: com.github.ArthurHub :android-image-cropper:2.4.5.

您还可以在日志底部的文件列表中看到只生成了 POM,没有生成 jar 或 aar。这也是 Gradle 同步在 AS 中成功的原因,因为依赖项 pom 已找到并且有效,所以该依赖项没有 Artifact 。

如果你查看你引用的项目的 build.gradle,你会发现他们没有使用 groupversion 来配置发布,那又怎样JitPack 已设置未使用,因此无法找到。

只要 JitPack 没有变得更智能,该项目就与 JitPack 不兼容,而不是仅仅设置一些项目变量,而是添加一些重新配置发布或类似内容的初始化脚本。

也许您应该改用复合构建。对于复合构建,您将声明一个二进制依赖项,如 com.theartofdev.edmodo:android-image-cropper:2.4.5,然后用项目的工作树和子构建替换此依赖项自动完成以获取依赖项的 Artifact 。这是用自定义构建替换依赖项的纯 Gradle 方法。

关于android - JitPack 不会使用 GitHub 存储库 - 包含演示该问题的示例存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44841415/

相关文章:

php - 我如何使用 MySQL 数据库中的数据填充 Android Spinner?

android - ListView 上 Android 轻微左/右滑动操作的资源

android - 使用 MaterialToolbar 在 AppBarLayout 中居中标题

grails - Grails 3 War-内联插件问题

android - Flutter应用程式正在Android模拟器上执行,但未在实体装置(OnePlus 7T)上执行

java - Spring Boot将项目打包到War

android - 如何以编程方式将元素添加到工具栏

c++ - 带有静态库的 Android Studio 中的 native C++ 代码

android - android studio字体问题

Android Studio 找不到JDK Mac