Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
防止在Android中达到65k方法_Android_Gradle_Proguard_Android Multidex - Fatal编程技术网

防止在Android中达到65k方法

防止在Android中达到65k方法,android,gradle,proguard,android-multidex,Android,Gradle,Proguard,Android Multidex,每次不加考虑地使用外部库都会导致达到65k方法的梯度误差。因此,我想知道什么是最好的解决方案来防止这一点,我不想考虑使用PROGART自定义设置。 我想到的(当然,如果我们使用的是开源库的话)只是下载代码并手动将其放到我们的项目中。然后我们可以删除未使用的类和方法。看起来我们在扮演前锋的角色,这很费时 问题 但是使用Gradle取罐子和 手动放置代码?或者在性能上有什么不同 我将感谢在创建具有许多库的项目时的任何最佳实践 注意:我现在不想再考虑Proguard自定义设置了,因为它通常会产生警

每次不加考虑地使用外部库都会导致达到65k方法的梯度误差。因此,我想知道什么是最好的解决方案来防止这一点,我不想考虑使用PROGART自定义设置。 我想到的(当然,如果我们使用的是开源库的话)只是下载代码并手动将其放到我们的项目中。然后我们可以删除未使用的类和方法。看起来我们在扮演前锋的角色,这很费时

问题

  • 但是使用Gradle取罐子和 手动放置代码?或者在性能上有什么不同
我将感谢在创建具有许多库的项目时的任何最佳实践


注意:我现在不想再考虑Proguard自定义设置了,因为它通常会产生警告,如果忽略它们,我会觉得有点奇怪,例如,
-dontwarn
。另外,我有点害怕使用MultiDex支持,我认为这是不推荐的。

在gradle中,您可以做的一件事是非常具体地了解您所包含的代码模块

例如:

编译'com.google.android.gms:play services:8.4.0'

将包含更多的内容,而不仅仅是

编译'com.google.android.gms:play services位置:8.4.0'

一般来说,最好让gradle管理外部依赖关系。最大的原因是,您可以放心,您将获得绑定到特定版本的代码快照。如果您只是手动导入代码,很容易忘记您正在使用的代码版本。修改(或有选择地包括)第三方代码的一大风险是,当第三方更新其代码时,可能是为了修复新版本安卓系统引起的一个主要错误,其中包括一些更改,这些更改会破坏您的手动调整。现在,您手头上的问题比您刚刚将其作为gradle依赖项包含时要复杂得多