首先启动需要很长时间(ClassLoader引用未知path)
在我的Android工作室更新到2.0和gradle 2.0.0和SDK平台更新到23.0.3当我想要启动应用程序需要太多的时间(约2-3秒),并在Android监视器中出现以下警告:
W/System: ClassLoader referenced unknown path: /data/app/net.hadifar.test-1/lib/arm W/System: ClassLoader referenced unknown path: /data/app/net.hadifar.test-1/lib/arm W/art: Suspending all threads took: 5.439ms W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable W/art: Suspending all threads took: 6.808ms
但是第二次启动应用程序,它照常运行。 任何人都知道这个问题是什么?
在2.0版本中,新增了一项即时运行function 。
为了启用这个function工具添加了大量的元信息,所以第一次构build和上传需要更多的时间。
注意
-
设置minSdkVersion 15或更高来获得任何利润;
-
即时运行目前不支持杰克 (支持Java 8),并将被禁用,而使用新的工具链;
-
你可能还会遇到一些小问题和错误 ;
在这里,我们可以写(或投票) 问题 (报告,使更好的工具)。
在新发布的AS 2.0
(或2.1)中有一个奇怪的行为,屏幕变成黑色(或Activity
暂停)几秒钟。 正如文档解释的第一次构build可能需要更长的AS 2.0
但是这个问题发生在运行时。
基于@Skadoosh评论的快速解决scheme将立即禁用运行 :
Settings → Build, Execution, Deployment → Instant Run and uncheck Enable Instant Run
更多信息:
当您部署干净的版本时,Android Studio会testing您的应用,以允许即时运行推送代码和资源更新。 虽然更新正在运行的应用程序发生得更快, 但第一次构build可能需要更长时间才能完成 。 您可以通过configuration一些DexOptions设置来改进构build过程:
android { ... dexOptions { maxProcessCount 4 // this is the default value javaMaxHeapSize "2g" } }
也适用于Android 4.1之前的警告。 它说 :
即时运行仅在部署debugging版本变体时使用,使用适用于Gradle版本2.0.0或更高版本的 Android插件以及在应用程序的模块级build.gradle文件中将minSdkVersion设置为15或更高版本 。 为了获得最佳性能,请将minSdkVersion设置为21或更高 。
从Google员工看这个video可能会帮助你了解一下Instant Run。
我遇到了同样的问题,当更新Andoid gradle插件2.4到2.10&我解决了它是通过使用下面的指令
转到Android Studio文件 – >设置→构build,执行,部署→即时运行,并取消选中所有CheckBox
我遇到了同样的问题,使用低版本的gradle可以解决。
build.gradle :classpath'com.android.tools.build: gradle : 1.3.0 '
gradle-wrapper.properties:distributionUrl = https://services.gradle.org/distributions/gradle-2.4-all.zip
没有必要禁用即时运行,但按照我的步骤,使用gradle插件v2.3.2和使用gradle v3.5可以解决它,享受,反正我解决我的项目上的问题。