我正在尝试创建一个 Android 闭源 SDK 软件包,以分发给一些客户。
我知道创建可分发的 Android 软件包的最佳方法是包含源代码、清单、布局 XML 和其他资源等,并创建 AAR 文件。我已经使用 Android Studio 创建了这个文件。
理想情况下,人们可以通过 Maven 存储库分发 AAR,以允许他人使用源代码,并分发列出依赖项的 pom.xml 文件。
然而,我不想强制将我的 AAR 上传到公共(甚至是私有)存储库 - 我只想以电子邮件或可下载 ZIP 文件的方式简单地分发我的 AAR 文件。
问题在于我的库项目具有许多依赖项(来自 Maven 和本地项目),并且 AAR 看起来没有内置支持列出(甚至打包)它们的依赖项,需要外部处理(我认为?)。
这意味着当将 AAR 包含在另一个应用程序中时,每当我尝试使用任何 AAR 的依赖项时,都会出现 java.lang.NoClassDefFoundError。
我找到的解决方法(不是理想的方法)是将 Maven 依赖项复制到主机应用程序的 build.gradle 的 dependencies 部分中。这不是很好,因为对于客户来说,这是一个额外的集成 SDK 步骤,并且在管理依赖关系方面也不够干净。
对于我拥有的项目依赖项,这种解决方法也不起作用,因为它在构建时被排除在外。我可以将其作为源代码提供,并要求客户将其添加到其项目中,我相信这将奏效,但这只会变得更加混乱。
因此问题是:如何创建一个易于分发的 AAR 文件,可以将其放入另一个应用程序中并具有自动依赖项解析而无需存储库?
我知道创建可分发的 Android 软件包的最佳方法是包含源代码、清单、布局 XML 和其他资源等,并创建 AAR 文件。我已经使用 Android Studio 创建了这个文件。
理想情况下,人们可以通过 Maven 存储库分发 AAR,以允许他人使用源代码,并分发列出依赖项的 pom.xml 文件。
然而,我不想强制将我的 AAR 上传到公共(甚至是私有)存储库 - 我只想以电子邮件或可下载 ZIP 文件的方式简单地分发我的 AAR 文件。
问题在于我的库项目具有许多依赖项(来自 Maven 和本地项目),并且 AAR 看起来没有内置支持列出(甚至打包)它们的依赖项,需要外部处理(我认为?)。
这意味着当将 AAR 包含在另一个应用程序中时,每当我尝试使用任何 AAR 的依赖项时,都会出现 java.lang.NoClassDefFoundError。
我找到的解决方法(不是理想的方法)是将 Maven 依赖项复制到主机应用程序的 build.gradle 的 dependencies 部分中。这不是很好,因为对于客户来说,这是一个额外的集成 SDK 步骤,并且在管理依赖关系方面也不够干净。
对于我拥有的项目依赖项,这种解决方法也不起作用,因为它在构建时被排除在外。我可以将其作为源代码提供,并要求客户将其添加到其项目中,我相信这将奏效,但这只会变得更加混乱。
因此问题是:如何创建一个易于分发的 AAR 文件,可以将其放入另一个应用程序中并具有自动依赖项解析而无需存储库?