Android Studio 2.x com.android.tools.fd.runtime.IncrementalChange $change

問題背景:

之前項目運行是ok的,重裝了64bit系統(tǒng)后裝上Android studio 2.1之后運行項目怎么之前的功能不能操作了。于是乎,看到log中怎么多了個$change 自己從來就沒有寫過這個東東呀。打斷點一看,到下面這行代碼時

Field[] fields = clazz.getDeclaredFields();

fields多出了個屬性$change。至此已經(jīng)定位到問題。

解決方法

  • 方法1
    既然是增加了Instant Run特性導致的,那就把此特性關閉就可以了(默認是開啟的) 關閉方法:Settings> Build, Execution, Deployment> Instant Run> Enable Instant Run to hot swap code/resource changes on deploy(default enabled)(取消此選項)
  • 方法2
Field[] fields = objClass.getFields();
for (Field field : fields) {         
      if(field.isSynthetic()){
            continue;
      }
      //add your code here
}

此方法增加了for 及一個判斷,F(xiàn)ield.isSynthetic()方法是判斷當前屬性是編譯插入時返回true。

總結

  • 方法1 的解決不會改變現(xiàn)有的代碼,風險較小,但是不能使用Studio的即時編譯特性
  • 方法2 我覺得是比較好的方案,可以徹底的解決問題而且還能使用新的特性
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,145評論 25 708
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,612評論 19 139
  • (文章轉(zhuǎn)自微信公眾號:奇喵校園) 點擊閱讀原文 收聽音頻。2016-英語一大作文范文 ①As it is viv...
    奇喵學院閱讀 323評論 0 1
  • 年 是獸, 吃人獸, 吃畜的獸, 奪容顏的獸, 受了它的襲擊, 傷痕累累的幸存, 拿出了所有的收獲, 慶??駳g麻醉...
    舒己懷_Frank閱讀 274評論 -1 9
  • 問了很多單身媽媽,一個人帶娃累嗎?得到的回答是累但自由,可以按照自己方式生活,人生真的好奇妙,能得到解決...
    00bd54afc49d閱讀 201評論 0 0

友情鏈接更多精彩內(nèi)容