Android 編譯遇到的問題(淚目)

近日,公司需要改一個APP需求恤煞,此APP是上古代碼屎勘,15年Eclipse代碼,幾經(jīng)易手居扒,面目全非概漱。。喜喂。因?qū)嵲诓幌肱狤clipse的安卓環(huán)境瓤摧,故而遷移到as上面(不是直接兼容的竿裂,是把lib,jnilib,asset,res,src,androidmanifest按照as的格式拷貝到個空的as目錄中),工程打開遇到各種編譯的坑照弥,僅此做記錄腻异。。这揣。

參考

1悔常、Some file crunching failed, see logs for details解決方案 以及.9patch點9圖片的報錯的詳細修改方法
2、gradle編譯異常記錄:finished with non-zero exit value 1-3
3给赞、警告: 最后一個參數(shù)使用了不準確的變量類型的 varargs 方法的非 varargs 調(diào)用

異常


1机打、java.lang.RuntimeException: Some file crunching failed, see logs for details

1.1、錯誤原因:構建Gradle的時候片迅,Gradle會去檢查一下是否修改過文件的后綴名残邀。
1.2、常見現(xiàn)象:
......1)一般大多數(shù)是出現(xiàn)在圖片上柑蛇,.jpg修改成了.png就會出現(xiàn)這個問題芥挣。
......2)命名圖片成了xxx.png.png這類問題
......3)“@layout/more_text ”,多了空格唯蝶,Error: ' ' is not a valid resource name character
......4).9圖片不規(guī)范九秀,必須加一個pix:AAPT err(Facade for 353666562): ERROR: 9-patch image 。粘我。鼓蜒。\res\drawable-hdpi\result_bottom_left.9.png malformed.
1.3、修改方法:
......1)在build.gradle文件中加上aaptOptions 這部分

android {
    compileSdkVersion 25
    //...
    defaultConfig {
        applicationId "com.hainanfishery.second.detector"
        //...
    }

    //增加這個
    //java.lang.RuntimeException: Some file crunching failed, see logs for details
    aaptOptions {
        cruncherEnabled = false
        useNewCruncher = false
    }
}

......2).9圖片的修改(不贅述):https://blog.csdn.net/dashan618/article/details/71641396

1.4征字、問題查找的工具都弹,as每次都提示,see logs匙姜,實際上logs體現(xiàn)不了畅厢,不如用看build過程找問題 --》 右側工具欄/Gradle/app工程/:app/build/build


2323232323.png

2、被編譯的代碼或資源有問題: non-zero exit value 1

2.1氮昧、錯誤原因:資源問題框杜,寫的不規(guī)范,遺漏啥的袖肥。以前的Eclipse工具不幫你找錯咪辱,有就行了,管你前面類型是啥
2.2椎组、常見現(xiàn)象:

    .....\layout\mediacontroller.xml:183: error: Error: No resource found that matches the given name (at 'background' with value '@color/mediacontroller_bg').
    .....\drawable\mediacontroller_btn_bg.xml:3: error: Error: No resource found that matches the given name (at 'drawable' with value '@color/mediacontroller_bg_pressed').
    .....\drawable\mediacontroller_btn_bg.xml:4: error: Error: No resource found that matches the given name (at 'drawable' with value '@color/mediacontroller_bg_pressed').
2.3油狂、修改方法:改正確即可
@mipmap/mediacontroller_bg
@drawable/mediacontroller_bg_pressed

3、jar包沖突:non-zero exit value 2

3.1、錯誤原因:重復的jar沖突
3.2专筷、常見現(xiàn)象:support-v4以前直接放在lib下弱贼,可后來項目直接compile里面都有v4或者v7了之類的
3.3、修改方法:1)確定磷蛹,刪除沒用重復的jar 2)支持可重復吮旅,在build.gradle中添加:multiDexEnabled true

android {
    defaultConfig {
        multiDexEnabled  true 
    }
}

4、編譯的代碼過多導致內(nèi)存不足:non-zero exit value 3

4.1弦聂、修改方法:在build.gradle中添加 dexOptions 的 javaMaxHeapSize

android {
    dexOptions {
          javaMaxHeapSize "2g" //增加編譯時候的內(nèi)存大小鸟辅,實際看電腦內(nèi)存支不支持
    }
}

5、警告: 最后一個參數(shù)使用了不準確的變量類型的 varargs 方法的非 varargs 調(diào)用

    Method method  =  cls.getMethod( " hashCode " ,  new  Class[ 0 ]);  //  編譯通過
    Method method  =  cls.getMethod( " hashCode " ,  null );  //  編譯失敗

    allMethod[i].invoke(dbInstance,  new  Object[]{});  //  編譯通過
    allMethod[i].invoke(dbInstance,  null );  //  編譯失敗

6莺葫、方法超量:android.dex.DexIndexOverflowException: Cannot merge new index xxxx into a non-jumbo instruction!

6.1、錯誤原因:錯誤出現(xiàn)的原因是 Android設定的方法數(shù)是65536個(DEX 64K problem)枪眉,超過這個方法數(shù)捺檬,導致dex無法生成,就無法生成APK(限制原因: 早期的Dalvik VM內(nèi)部使用short類型變量來標識方法的id贸铜,就有了 最大方法數(shù)的限制65536)
6.2堡纬、修改方法:在build.gradle中添加以下內(nèi)容

android {
defaultConfig {
        multiDexEnabled  true 
    }

    dexOptions {
         jumboMode true  //方法數(shù)量超過
    }
}

7、錯誤: 程序包org.apache.http不存在

7.1蒿秦、錯誤原因:早期版本有apache烤镐,后面sdk默認沒有了,使用到了HttpClient等需要apache支持
7.2棍鳖、修改方法:在build.gradle中添加以下內(nèi)容

android {
    useLibrary 'org.apache.http.legacy'
}

8炮叶、cmake的問題,找不到so拉...

8.1渡处、defaultConfig外面的 externalNativeBuild - cmake镜悉,指明了 CMakeList.txt 的路徑;
8.2医瘫、defaultConfig 里面的 externalNativeBuild - cmake侣肄,主要填寫 CMake 的命令參數(shù)。異常處理醇份,即由 arguments 中的參數(shù)最后轉(zhuǎn)化成一個可執(zhí)行的 CMake 的命令稼锅,可以在 app/externalNativeBuild/cmake/debug/{abi}/cmake_build_command.txt中查到。如下
8.3僚纷、ndk的地方矩距,如果真的在不同cpu幸好下生成so,那么可以對應寫畔濒,不然不要隨便寫剩晴,否則有可能報錯

android {
    
    defaultConfig {
        ...
        //內(nèi)部  externalNativeBuild 
        externalNativeBuild {
            cmake {
                cppFlags ""
            }
        }

        ndk {
            abiFilters 'armeabi','armeabi-v7a'
            //arm64-v8a,向下兼容,如果確定沒有單獨打過v8的so赞弥,那么就不要加這個目錄
//                abiFilters 'armeabi','armeabi-v7a','arm64-v8a'//根據(jù)需要可選一個或多個
        }
    }

  //外部  externalNativeBuild 
   externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
    }

}



9毅整、編譯發(fā)布APK時候發(fā)生一個嚴重錯誤 : Lint found fatal errors while assembling a release target.

android {
    lintOptions {
        checkReleaseBuilds false
        // Or, if you prefer, you can continue to check for errors in release builds,
        // but continue the build even when errors are found:
        abortOnError false
    }
}
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市绽左,隨后出現(xiàn)的幾起案子悼嫉,更是在濱河造成了極大的恐慌,老刑警劉巖拼窥,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件戏蔑,死亡現(xiàn)場離奇詭異,居然都是意外死亡鲁纠,警方通過查閱死者的電腦和手機总棵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來改含,“玉大人情龄,你說我怎么就攤上這事『慈溃” “怎么了骤视?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鹃觉。 經(jīng)常有香客問我专酗,道長,這世上最難降的妖魔是什么盗扇? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任祷肯,我火速辦了婚禮,結果婚禮上粱玲,老公的妹妹穿的比我還像新娘躬柬。我一直安慰自己,他們只是感情好抽减,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布允青。 她就那樣靜靜地躺著,像睡著了一般卵沉。 火紅的嫁衣襯著肌膚如雪颠锉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天史汗,我揣著相機與錄音琼掠,去河邊找鬼。 笑死停撞,一個胖子當著我的面吹牛瓷蛙,可吹牛的內(nèi)容都是我干的悼瓮。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼艰猬,長吁一口氣:“原來是場噩夢啊……” “哼横堡!你這毒婦竟也來了?” 一聲冷哼從身側響起冠桃,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤命贴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后食听,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胸蛛,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年樱报,在試婚紗的時候發(fā)現(xiàn)自己被綠了葬项。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡迹蛤,死狀恐怖玷室,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情笤受,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布敌蜂,位于F島的核電站箩兽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏章喉。R本人自食惡果不足惜汗贫,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望秸脱。 院中可真熱鬧落包,春花似錦、人聲如沸摊唇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽巷查。三九已至有序,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間岛请,已是汗流浹背旭寿。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留崇败,地道東北人盅称。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親缩膝。 傳聞我的和親對象是個殘疾皇子混狠,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359