2017-03-06 55 views
5

在我將Android Studio從2.2更新到2.3並將應用程序運行到我的手機後,今天發生此錯誤。上週五一切都很好。這個星期一的禮物毀了我整天。
Gradle設置爲「使用本地gradle分發」,版本3.3。某些文件運算失敗,mergeDebugResources失敗

日誌信息如下,因爲它太長,所有的人都是相似的,我只是複製了一些片段:

Error: Some file crunching failed, see logs for details 
:app:mergeDebugResources FAILED 
AAPT: \\?\C:\Users\任\.android\build-cache\41cfce3bb6e2ca4b269727fe91725c24a067ec68\output\res\drawable-mdpi-v4\abc_btn_switch_to_on_mtrl_00012.9.png ERROR: Unable to open PNG file 
AAPT: \\?\C:\Users\任\.android\build-cache\41cfce3bb6e2ca4b269727fe91725c24a067ec68\output\res\drawable-xxhdpi-v4\abc_ic_star_half_black_48dp.png ERROR: Unable to open PNG file 
AAPT: \\?\C:\Users\任\.android\build-cache\41cfce3bb6e2ca4b269727fe91725c24a067ec68\output\res\drawable-hdpi-v4\abc_ic_menu_share_mtrl_alpha.png ERROR: Unable to open PNG file 
AAPT: \\?\C:\Users\任\.android\build-cache\41cfce3bb6e2ca4b269727fe91725c24a067ec68\output\res\drawable-xxhdpi-v4\abc_text_select_handle_middle_mtrl_light.png ERROR: Unable to open PNG file 

AAPT err(Facade for 925134644) : No Delegate set : lost message:\\?\C:\Users\任\.android\build-cache\41cfce3bb6e2ca4b269727fe91725c24a067ec68\output\res\drawable-hdpi-v4\abc_ic_star_half_black_48dp.png ERROR: Unable to open PNG file 
AAPT err(Facade for 925134644) : No Delegate set : lost message:\\?\C:\Users\任\.android\build-cache\41cfce3bb6e2ca4b269727fe91725c24a067ec68\output\res\drawable-mdpi-v4\abc_switch_track_mtrl_alpha.9.png ERROR: Unable to open PNG file 

的build.gradle如下:

apply plugin: 'com.android.application' 
android { 
    compileSdkVersion 25 
    buildToolsVersion '25.0.2' 

    aaptOptions { 
     cruncherEnabled = false 
    } 

    defaultConfig { 
     minSdkVersion 18 
     targetSdkVersion 18 
    } 

    buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 
     } 
    } 
    sourceSets { 
     main { 
      assets.srcDirs = ['src/main/assets', 'src/main/assets/'] 
     } 
    } 

    useLibrary 'org.apache.http.legacy' 

    dependencies { 
     compile fileTree(include: ['*.jar'], dir: 'libs') 
     testCompile 'junit:junit:4.12' 
     compile 'com.android.support:appcompat-v7:25.2.0' 
     compile 'com.android.support:support-v4:25.2.0' 
     compile 'com.jakewharton:butterknife:7.0.1' 
     compile 'org.jetbrains:annotations-java5:15.0' 
    } 
} 

據諮詢其他問題,雖然有些答案太過時了,但我仍然嘗試了以下方法,但不幸的是,它們中沒有一個能夠救我:
1.從我的項目中刪除所有.9.png文件。
2.檢查所有PNG文件是真實的PNG。
3.將下列設置的build.gradle:

aaptOptions { 
    cruncherEnabled = false 
} 

4.檢查項目文件的路徑,未達到255個字符(窗10)。
5.清除gradle緩存。
6.使緩存失效並重新啓動。
7.清理項目。

我認爲日誌信息導致我由Android Studio自動生成的文件。試圖搜索錯誤.png文件,它們都不存在於我的項目中。

任何意見表示讚賞。

+0

當我使用格式不正確的繪圖工具時,我總是遇到這個問題。因此,如果您要複製drawables,請確保可以使用計算機上安裝的媒體軟件打開它。 –

+0

@FarazAhmed謝謝你的回覆,但我在第二項中提到說我已經檢查過了。 – Longer

回答

8

問題解決。解決方案是here

相關數據如下:
1.根據Android Studio 2.3版本的發佈說明,默認情況下會啓用構建緩存。
2.所以我們應該禁用此設置。這裏是官方指南,Android Studio /用戶指南/ build-cache(鏈接https://developer.android.com/studio/build/build-cache.html)。
3.轉到gradle.properties文件,並禁用構建緩存。

// To re-enable the build cache, either delete the following 
// line or set the property to 'true'. 
android.enableBuildCache=false 

的另一種方式是通過增加

# first line can be skipped because true is the default value by 2.3 
android.enableBuildCache=true 
android.buildCacheDir =c:\\temp\\ 
+1

Awsome!更改緩存目錄對我有效!我認爲這是最好的解決方案。 –

+0

對於像我這樣的新手用戶:你在gradle.properties文件中加入了這個。 – green0range

+1

@ green0range是的,正如第3步所述。我不確定這個問題是否仍然存在,只要嘗試一下,如果你堅持使用相同的日誌信息。 – Longer

0

這是造成這個錯誤,因爲在你的繪製,你必須更改擴展名從其他format.I到.png格式將建議修改構建的緩存目錄更改擴展名使用MS Paint或其他圖像編輯應用程序,如Gimp。

+0

我已通過選擇所有可繪製文件並右鍵單擊來查看它們的屬性,它說Types是png文件。 – Longer