现在已经有一段时间了,Instant Run不再工作了,也就是说,它比标准版本慢.
AOSP错误跟踪器中有一些材料,但我无法解决这个问题.我相信你们中的一些人会有所帮助.
建设大约需要1.30分钟.
我第一次运行应用程序,然后应用一些小的更改.例如,更改int a = 1为int a = 2方法内部或更改字符串.
然后再次单击运行.怎么了:
assembleDebug我的所有模块).大约需要1.30分钟.第二轮继续,只是打电话app:assembleDebug.大约需要一分钟:
16:27:10 Executing tasks: [:app:assembleDebug]
16:28:16 Gradle build finished in 1m 5s 264ms
16:28:22 Instant Run applied code changes and restarted the app.
Run Code Online (Sandbox Code Playgroud)在第一轮中,没有任何输出到事件日志或Gradle控制台.在第二轮中,Gradle控制台会输出大量内容并以此结束
BUILD SUCCESSFUL
Total time: 51.385 secs
PREDEX CACHE HITS: 0
PREDEX CACHE MISSES: 45
Stopped 0 compiler daemon(s).
Run Code Online (Sandbox Code Playgroud)
我在我的grade.properties文件中有这些:
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.daemon=true
Run Code Online (Sandbox Code Playgroud)
build.gradle文件中没有与dex相关的内容.不使用杰克.Android Studio 2.2.3.
我一直在讨论即时运行,好像它处于一个很好的状态,但是我和我的团队经常会遇到这个功能的重大问题,并且由于它而导致编码体验降级.
在即时运行之前,我们的干净构建是〜1分30秒,之后我们得到的构建大约是25秒或偶尔的40秒.虽然即时运行确实似乎有时会将构建减少到6-12秒,但有时候,它会导致我们进入疯狂的长版本,我们已经看到长达13分钟,大大抵消了增量编译的任何收益.
它似乎在大多数时候,小的变化仍然需要40秒.有时它是6秒,但这是非常罕见的.
感觉很像是即时运行降低了我们始终如一地高效工作的能力.以下是我们的一些应用程序特定配置:
Android Studio 2.1.1,Android插件2.1
multiDexEnabled true
dexOptions {
preDexLibraries true
javaMaxHeapSize "4g"
maxProcessCount 4
incremental true
dexInProcess true
}
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xmx6g -XX:MaxPermSize=512m
Run Code Online (Sandbox Code Playgroud)
我们做错了什么,或者有人找到了解决方法吗?
android android-build android-gradle-plugin android-instant-run
使用Instant Run运行项目后出现此异常:
java.lang.IllegalAccessError:非法类访问:'com.alla.kotlinexample.MainActivity $ override'试图访问'kotlin.jvm.internal.DefaultConstructorMarker'('com.alla.kotlinexample.MainActivity $ override'的声明出现在/ com.alla.kotlinexample
上的 com.alla.kotlinexample.MainActivity $ override.onCreate(MainActivity.kt:21)
中的 data/data/com.alla.kotlinexample/files/instant-run/dex-temp/reload0x0000.dex). MainActivity $ override.access $讯(MainActivity.kt)
这是代码:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setSupportActionBar(toolbar)
val persons: List<Person> = listOf<Person>(Person("Person1"), Person("Person2", 27))
fab.setOnClickListener { view ->
Snackbar.make(view, persons[1].name, Snackbar.LENGTH_LONG)
.setAction("Action", null).show()
}
tv_person_name.text = persons.maxBy { it.age ?: 34 }.toString()
}
data class Person(val name: String, val age: Int? = null)
}
Run Code Online (Sandbox Code Playgroud)
并且错误指向这一行 val persons: List<Person> = listOf<Person>(Person("Person1"), Person("Person2", 27))
Android Studio版本为3.0.1 Gradle: …
目前,在Android Studio版本3.3中,缺少"应用更改"选项的快捷方式,允许即时运行.还有一个名为"更新运行应用程序"的选项,它不提供相同的功能.
此选项在3.1版等旧版本中可用,如屏幕截图所示
我无法在3.3版中使用Instant Run功能.
这有解决方法吗?
我写了一个Android应用程序到目前为止工作正常.然后我添加了Google Cloud Messaging(GCM)的功能.我使用了谷歌的演示项目,它似乎增加了分析和应用程序索引等.
现在启动应用程序按预期工作但需要花费很多时间.日志显示许多这样的消息:
I/dex2oat: ----------------------------------------------------
I/dex2oat: <SS>: S T A R T I N G . . .
I/dex2oat: <SS>: Zip is absent. Canceled.
I/dex2oat: /system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm --instruction-set-features=div --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --dex-file=/data/data/world.b2g.b2gether/files/instant-run/dex/slice-com.google.android.gms-play-services-measurement-8.4.0_d76b40d326ea93493481fa158b18846c1c4627dd-classes.dex --oat-fd=29 --art-fd=-1 --oat-location=/data/data/world.b2g.b2gether/cache/slice-com.google.android.gms-play-services-measurement-8.4.0_d76b40d326ea93493481fa158b18846c1c4627dd-classes.dex --runtime-arg -Xms64m --runtime-arg -Xmx512m
I/dex2oat: dex2oat took 288.616ms (threads: 4)
I/dex2oat: ----------------------------------------------------
I/dex2oat: <SS>: S T A R T I N G . . .
I/dex2oat: <SS>: Zip is absent. Canceled.
I/dex2oat: /system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm --instruction-set-features=div --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art …Run Code Online (Sandbox Code Playgroud) android gradle google-cloud-messaging google-play-services android-instant-run
Instant Run是为减少运行和调试应用程序的时间而引入的新功能.我拥有启用即时运行所需的所有配置,但在Android Studio上未启用.这是我的配置如下.
1. Android Studio 2.1
2. 'com.android.tools.build:gradle:2.1.0'
3. minSdkVersion 15
4. Settings->Build, Execution, Deployment > Instant Run = "Enable Instant Run..."
5. Run ->device is Android version 4.4.4
Run Code Online (Sandbox Code Playgroud)
但是当我在设备Android版本5.1.1上运行 - >时,启用了即时运行.
请提示,如果我错过了其他配置,请启用Android 4.4.4设备的即时运行.
我是Android开发人员,最近开始学习Swift.Android工作室中有一个很酷的功能叫做Instant Run,它可以显着减少编码过程中增量代码更改的构建和部署时间.
Instant Run 2.0 是在Android Studio 2.0中引入的,它是Run和Debug命令的一种行为,可显着缩短应用程序更新之间的时间.虽然您的首次构建可能需要更长时间才能完成,但Instant Run会在不构建新APK的情况下将后续更新推送到您的应用,因此可以更快地看到更改.
如果您在Android Studio上启用Instant Run,则无需从头开始构建和运行应用程序,特别是当您在应用程序中间处理一些详细的View Controller(故事板)时.
我很想知道这个功能或类似功能在XCode中是否可用,或者每次我想测试应用程序时都必须从头开始运行应用程序?
即时运行和Google地图似乎存在问题.在重新运行应用程序以查看更改时,如果应用程序正在使用Google地图,则会发生崩溃.这是堆栈跟踪的一部分:
java.lang.RuntimeException:
android.content.res.Resources$NotFoundException: File res/drawable/common_google_signin_btn_text_light_focused.xml from drawable resource ID
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
........
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/common_google_signin_btn_text_light_focused.xml from drawable resource ID
at android.content.res.Resources.loadDrawableForCookie(Resources.java:2640)
.....
Caused by: android.content.res.Resources$NotFoundException: File res/drawable-xxhdpi-v4/maps_btn_myl_pressed.png from drawable resource ID
Run Code Online (Sandbox Code Playgroud)
崩溃是因为a ResourcesNotFoundException而发生的,这似乎是由上面的堆栈跟踪中列出的文件引起的.
有没有人遇到过这个问题,如果有的话,解决了什么?
android google-maps android-studio instant-run android-instant-run
我最近尝试使用StrictMode但有一个奇怪的侵犯,所以我尝试建立一个新的 "空活动"项目(在Android Studio),并添加如下(中记载的应用程序类在这里):
public class TestApplication extends Application {
@Override
public void onCreate() {
setStrictMode();
super.onCreate();
}
private void setStrictMode() {
if (BuildConfig.DEBUG) {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectAll()
.penaltyLog()
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects()
.detectLeakedClosableObjects()
.penaltyLog()
.penaltyDeath()
.build());
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在这个空项目中遇到同样的问题:
StrictMode policy violation; ~duration=165 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=65599 violation=2
堆:
at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1440)
at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:241)
at java.io.File.isDirectory(File.java:837)
at dalvik.system.DexPathList$Element.toString(DexPathList.java:634)
at java.lang.String.valueOf(String.java:2827)
at java.util.Arrays.toString(Arrays.java:4511)
at dalvik.system.DexPathList.toString(DexPathList.java:194)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:126)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.view.LayoutInflater.createView(LayoutInflater.java:606) …Run Code Online (Sandbox Code Playgroud) 在我的Android应用程序中,我正在调试它启用了即时运行.
该应用程序经常给我意外的错误,如果我做了一个干净的构建,它会得到解决.
例如,有时候类没有找到异常,其中类实际存在.此外,有时在尝试将View返回的内容强制findViewById()转换为目标类型时会出现类强制转换异常(可能android studio在热部署布局时误解了元素ID).
只需执行完整构建,所有这些错误都可以在不进行代码更改的情况下得到解决 即时运行已成功使构建过程慢两到三倍.
为什么我会收到这些错误?有谁知道如何立即运行正常工作?
android ×8
instant-run ×2
google-maps ×1
gradle ×1
hot-reload ×1
ios ×1
kotlin ×1
oncreate ×1
xcode ×1