Google Play“原生平台”显示commons-io-2.4.jar

我刚刚遇到了一个非常奇怪的问题,那就是我的应用程序的构build(通过Google Playtesting版频道进行分发)拒绝部署到任何设备。 Google的一些调查和一些帮助显示,问题出在Google Play控制台的APK细节上:

Google Play控制台的屏幕截图

可能造成了什么? 这是如何在我的build.gradle中指定依赖build.gradle

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

APK是这样构build的:

 gradle clean gradle assembleMarketRelease 

market是产品口味之一。 该应用程序安装并运行时,侧装载罚款。

我通过消除这个依赖关系来解决这个问题,并自己重新实现了缺less的function,现在应用程序正在按预期部署。 但是我想了解这个潜在的问题。 我是否错误地指定了依赖关系? 我错误地构build了吗?

相关 : Google Play开发者控制台在上传的Apk的Native Platforms部分显示DS_Store

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

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

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

希望这可以帮助。

我通过replace来修复它

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

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

在build.gradle。


我发现它是这样的:

  1. search“maven apache commons io” 。
  2. findApache Commons IO 2.4的Maven仓库页面 。
  3. 点击Gradle标签,标签上写着: 'commons-io:commons-io:2.4'