【问题标题】:Google Play "Native platforms" showing commons-io-2.4.jarGoogle Play“原生平台”显示 commons-io-2.4.jar
【发布时间】:2014-03-12 02:08:32
【问题描述】:

我刚刚遇到了一个非常奇怪的问题,我的应用构建(用于通过 Google Play 的 beta 渠道分发)拒绝部署到任何设备。一些调查和来自 Google 的一些帮助表明,当深入到 Google Play 控制台中的 APK 详细信息时,问题出在:

是什么原因造成的?这就是在我的build.gradle 中指定依赖项的方式:

compile 'org.apache.directory.studio:org.apache.commons.io:2.4'

APK 是这样构建的:

gradle clean
gradle assembleMarketRelease

其中market 是产品风味之一。该应用程序在侧面加载时可以正常安装和运行。

我通过删除该依赖项并自己重新实现缺少的功能来解决此问题,现在该应用程序正在按预期部署。但我想了解潜在的问题。我是否错误地指定了依赖项?我是否构建错误?

相关Google play developer console shows DS_Store in Native Platforms section of uploaded Apk

【问题讨论】:

标签: android gradle google-play apache-commons android-gradle-plugin


【解决方案1】:

编辑:Pang 的答案实际上是正确的https://stackoverflow.com/a/28759797/1436766。我会保留这个答案,因为它确实解决了类似的问题。

我今天也面临同样的问题。我上传了我的 apk,控制台告诉我 apk 有一个原生平台“joda-convert-1.5.jar”。令人惊讶的是,我并没有直接在任何地方使用那个罐子。经过研究,我发现我正在使用的另一个库正在使用该 jar。它在那个 jar 的“lib”文件夹中。由于我拥有该库的源代码,因此我通过将“joda-convert-1.5.jar”放在“libs”文件夹中来重新编译该库。并清理并重新编译了我的应用程序。一切都已修复。

似乎“lib”文件夹中的任何内容都被视为本机库,因此开发人员控制台会这样显示。确保库位于“libs”文件夹中。

希望这会有所帮助。

【讨论】:

  • 投票率较高的答案实际上是正确的,他在问题中已经有了commons-io库的编译指令。这与将其包含在 lib 目录中相同(假设您将所有内容都包含在 lib 中)。
【解决方案2】:

我通过替换来修复它

compile 'org.apache.directory.studio:org.apache.commons.io:2.4'

compile 'commons-io:commons-io:2.4'

在 build.gradle 中。


我是这样发现的:

  1. 搜索"maven apache commons io"
  2. 找到the Maven repository page for Apache Commons IO 2.4
  3. 点击 Gradle 选项卡,上面写着:'commons-io:commons-io:2.4'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多