标签: android-instant-run

尽管即时运行已关闭,Android Studio会安装旧代码/不重启应用程序

我正在使用新的Android Studio 2.0(Beta 6),我面临着一个严重的问题.更新后,我注意到Instant Run功能存在一些问题,确保应用程序实际运行新代码非常困难.我立即禁用了"即时运行"功能.

尽管如此,我注意到Android Studio并不总是部署新代码!

我在创建Activity时添加了一个print并且没有调用它来测试我的理论.如果我关闭应用程序(例如通过按后退按钮)然后运行代码 - 它按预期工作.

我还验证了它实际上是一个问题,因为在按下运行按钮后运行旧代码.

F正在发生什么,有没有人知道修复?(重新安装AS 1.5除外)

备注和摘要:

  • "运行"按钮上没有闪电
  • 按下运行后不调用onCreate Print
  • 按下运行后更改的代码不会更新
  • 在"首选项"中关闭"即时运行"(并且在代码更改时重新启动活动已启用)
  • 它不会每次都发生- 大约50%的运行

android-studio android-instant-run

7
推荐指数
0
解决办法
345
查看次数

Android Studio ADB连接从Macintosh上2.2开始丢弃有线连接设备

所有这些对我来说都是新的.它必须是其中之一.

Android Studio 2.2和Android 24.

即时运行

Mac OS Sierra.

似乎没有任何模式.它有时在2分钟后发生,有时在10分钟后发生.

我有三种不同的设备,4.4,5.0和6.0+.它不是设备......它发生在所有三个设备上.我已经在这台Mac上使用Studio超过一年了,之前从未见过这个.

android adb android-studio android-instant-run macos-sierra

7
推荐指数
1
解决办法
2919
查看次数

使用Jack编译器时禁用Instant Run

我收到了这条消息gradle:

Instant Run is disabled when Jack compiler is used
Run Code Online (Sandbox Code Playgroud)

我的编译时间太长了.

3:54:11 PM Gradle build finished with 1 warnings(s) in 17m 15s 937ms 
Run Code Online (Sandbox Code Playgroud)

我认为是因为这个消息.

我很担心离线模式.

我的朋友:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion '24.0.0'

    defaultConfig {
        applicationId "*.*.*"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        jackOptions {
            enabled true
        }
        // Enabling multidex support.
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    dexOptions …
Run Code Online (Sandbox Code Playgroud)

android android-jack-and-jill android-instant-run

7
推荐指数
2
解决办法
3922
查看次数

android InstantRun - Norton Security发现了Trojan

一周前,Norton Security开始在文件R.class中找到特洛伊木马(Trojan.Gen.NPE.2):

app\build\intermediates\transforms\instantrun\debug\folders\1\5\main\android\support\v4\r.class

app\build\intermediates\transforms\instantrunslicer\debug\folders\1\5\slice_2\android\support\v4\r.class

链接到virustotal.com扫描:https://www.virustotal.com/pl/file/282f4e09c102cd93c2f849c9fe9ed570188f5a03395ab84d2457a7c64d7acb1c/analysis/1499458308/

和代码:

package android.support.v4;

import com.android.tools.fd.runtime.IncrementalChange;
import com.android.tools.fd.runtime.InstantReloadException;

public final class R {
    public static final long serialVersionUID = 830508538663712626L;

    public R() {
        IncrementalChange var1 = $change;
        if(var1 != null) {
            Object[] var10001 = (Object[])var1.access$dispatch("init$args.([Landroid/support/v4/R;[Ljava/lang/Object;)Ljava/lang/Object;", new Object[]{null, new Object[0]});
            Object[] var2 = (Object[])var10001[0];
            this(var10001, (InstantReloadException)null);
            var2[0] = this;
            var1.access$dispatch("init$body.(Landroid/support/v4/R;[Ljava/lang/Object;)V", var2);
        } else {
            super();
        }
    }

    R(Object[] var1, InstantReloadException var2) {
        String var3 = (String)var1[1];
        switch(var3.hashCode()) {
        case -1968665286:
            super();
            return;
        case -71951640: …
Run Code Online (Sandbox Code Playgroud)

android antivirus trojan norton android-instant-run

7
推荐指数
1
解决办法
948
查看次数

没有更改部署android studio 2.1

Android Studio 2.1即时运行不会更新设备上的应用程序

我发现AndroidStudio 2.1存在问题.当我使用小的Java代码更改运行应用程序时,它有时不会更新设备上的应用程序.而是显示一条消息

无需更改部署//(不再显示)

我在这里错过任何东西吗?作为一种解决方法,我每次都要清理构建,以反映应用程序中的更改.

android android-studio instant-run android-instant-run android-studio-2.1

6
推荐指数
1
解决办法
3349
查看次数

Android Studio在Android中使用java 8无法运行

使用java 8进行简洁的Lambda表达式等,但缺点是即时运行不起作用. buildToolsVersion "23.0.3"

compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
Run Code Online (Sandbox Code Playgroud)

如何使用java 8功能启用即时运行

android java-8 android-studio android-instant-run

6
推荐指数
1
解决办法
2392
查看次数

android中所有包都无法下载错误

并非所有软件包都可供下载! 以下包不可用: - 包 id 源;android-24

我正在尝试使用 Web 服务从数据库中获取数据,但在运行应用程序时出现上述错误。

如何在 android studio 中解决此问题?

sdk android android-studio android-sdk-manager android-instant-run

6
推荐指数
2
解决办法
3万
查看次数

Android Studio - 无法禁用即时运行

我有一个LibGDX项目,它由一个核心项目和多个依赖于它的Android /桌面项目组成.

我目前正在更改核心项目中的一些代码,但是当我运行项目时,手动构建,清理和运行更改并没有反映出来.

从我的搜索中我觉得这个问题与Instant Run有关,但我无法禁用它,因为复选框显示为灰色.

在此输入图像描述

我的问题与Instant Run有关吗?我将如何禁用它?

android libgdx android-studio android-instant-run

6
推荐指数
1
解决办法
5256
查看次数

即时运行Android studio 2.2我从来没有得到hotswap总是重新启动和通知字段类型更改

我刚刚更新到Android工作室2.2,而在我改变字段值或其他小东西之前我可以进行热交换之前,我总是通过通知重新启动:立即运行应用代码更改并重新启动应用程序.字段类型更改.

即使我没有改变任何字段的类型.

有人见过这个吗?有谁知道如何解决这一问题?

android android-instant-run android-studio-2.2

5
推荐指数
0
解决办法
420
查看次数

WebView JavaScript界面​​似乎只能通过Android Studio的Instant-Run工作,但不能通过常规gradle编译

安装程序

我有一个托管WebView组件的简单片段.在这个片段的初始化过程中,我向我的应用注册了一些JavaScript接口方法:

mJavaScriptHooks = new JavaScriptHooks();
...
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(mJavaScriptHooks, "Android");
Run Code Online (Sandbox Code Playgroud)

我的JavaScript钩子并不引人注目,所有都以下列方式声明:

public class JavaScriptHooks {
    @JavascriptInterface
    public void someMethod() {
       ...
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

为了确保这些方法不被混淆或优化而遗忘,我添加了以下我的ProGuard配置:

-keepattributes JavascriptInterface
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
Run Code Online (Sandbox Code Playgroud)

问题

一切都按预期工作.网页通过提供的"Android"对象成功调用方法,调用方法并执行相应的任务.但是,它仅在我使用通过Android Studio的即时运行功能生成的APK运行应用程序时才有效.

如果APK是通过Android Studio安装的,或者我是否通过命令行使用安装它并不重要 adb install

如果我通过常规gradle编译我的APK(或者如果我禁用Instant-Run),那么JavaScript界面​​就会停止工作.

调试

首先,我确保ProGuard禁用.即使ProGuard以某种方式✨魔法✨启用,我的ProGuard配置也应该确保我的JS方法不受影响.

我还拆解了APK,以确保通过JS接口公开的方法不会以某种方式被破坏(或删除).他们不是.它们似乎在DEX文件中存在,如声明的那样.

当我运行启用了Instant-Run生成的APK时,我可以检查(通过Chrome)WebView中加载的页面并看到我的"Android"对象可用,并且我公开的所有方法都在那里(和可调用的):

> Android
Object
    someMethod()
    __proto__
Run Code Online (Sandbox Code Playgroud)

但是,当我运行禁用Instant-Run的APK(即vanilla gradle)时,"Android"对象可用,但我的方法都没有.它只是一个空物.

> Android
Object
    __proto__
Run Code Online (Sandbox Code Playgroud)

我在WebView中加载的页面位于我控制的公共可见服务器上.在两个APK版本中加载相同的页面,并以相同的方式调用方法.只有使用Instant-Run功能构建的APK似乎才有效.

我一整天都在挖,但我找不到任何有用的东西.大多数建议都指向ProGuard配置问题或WebView中的旧错误(即Gingerbread时代).

javascript java android webview android-instant-run

5
推荐指数
1
解决办法
824
查看次数