Google Play"原生平台"显示了commons-io-2.4.jar

Gra*_*and 18 android apache-commons gradle google-play android-gradle-plugin

我刚刚遇到一个非常奇怪的问题,我的应用程序的构建,通过Google Play的测试版渠道分发,拒绝部署到任何设备.谷歌的一些调查和一些帮助显示问题是这样的,当深入了解Google Play控制台中的APK详情时:

Google Play控制台的屏幕截图

有什么可能导致这种情况?这是我在以下方面指定依赖关系的方式build.gradle:

compile 'org.apache.directory.studio:org.apache.commons.io:2.4'
Run Code Online (Sandbox Code Playgroud)

APK就是这样构建的:

gradle clean
gradle assembleMarketRelease
Run Code Online (Sandbox Code Playgroud)

哪里market是产品口味之一.该应用程序安装并在侧载时运行正常.

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

相关:Google Play开发者控制台在上传的Apk的"原生平台"部分中显示DS_Store

Pan*_*ang 27

我通过替换来修复它

compile 'org.apache.directory.studio:org.apache.commons.io:2.4'
Run Code Online (Sandbox Code Playgroud)

compile 'commons-io:commons-io:2.4'
Run Code Online (Sandbox Code Playgroud)

在build.gradle中.


我发现它是这样的:

  1. 搜索"maven apache commons io".
  2. 找到Apache Commons IO 2.4的Maven存储库页面.
  3. 单击Gradle选项卡,其中显示:'commons-io:commons-io:2.4'.

  • 你是炸弹的耻辱!我正准备把我的显示器扔出窗外...... (2认同)

Pro*_*mar 1

编辑:Pang 的答案实际上是正确的/sf/answers/2013185821/。我会保留这个答案,因为它确实解决了类似的问题。

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

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

希望这可以帮助。