谷歌应用商店“本机平台”显示 commons-io-2.4.jar

18

我刚遇到了一个非常奇怪的问题,我的应用程序打包后通过谷歌Play的Beta渠道进行分发,但是拒绝在任何设备上部署。经过一些调查和从谷歌获得的帮助,发现问题出在Google Play控制台中APK的详细信息中:

Google Play控制台的屏幕截图

这是什么原因造成的?以下是我的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


你可以检查这个答案,它可能会解决你的问题:https://dev59.com/JmYr5IYBdhLWcg3wAFvE#48628062 - Gouda Elalfy
2个回答

27

我通过替换来修复它

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. 找到 Apache Commons IO 2.4 的 Maven 仓库页面
  3. 点击 Gradle 标签,里面写着:'commons-io:commons-io:2.4'

1

编辑:Pang的回答实际上是正确的https://dev59.com/bGEi5IYBdhLWcg3wBYEt#28759797。我将保留此回答,因为它解决了类似的问题。

今天我遇到了同样的问题。我上传了我的apk,控制台告诉我apk有一个名为'joda-convert-1.5.jar'的本地平台。令人惊讶的是,我没有在任何地方直接使用那个jar文件。经过研究,我发现该jar文件被我使用的另一个库使用。而且它在那个库的“lib”文件夹中。由于我有那个库的源代码,我通过将'joda-convert-1.5.jar'放在'libs'文件夹中重新编译了那个库。然后清理并重新编译我的应用程序。一切都解决了。

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

希望这可以帮助到您。


1
更高票的答案实际上是正确的,他已经在问题中有了commons-io库的编译指令。这与将其包含在lib目录中相同(假设您将所有内容都包含在lib中)。 - ddipasquo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接