2017-09-14 77 views
6

當我嘗試縮小我的Feature APK大小時,我在我的功能Build Gradle中使用了shrinkResources true。 然而,它的投訴Error:Resource shrinker cannot be used for libraries.shrinkResources true不能用於Instant Apps功能?

這篇文章要求我們使用它 https://medium.com/jet-stories/make-your-app-instant-33855ab5d02b

難道我做錯了什麼,或者這真的不是爲了即時應用程序支持?

+1

這可能是最近Gradle版本中可能存在的問題。在AS 3.0 Canary 4中''shrinkResources'對我來說工作正常。但是當我在AS 3 beta 4中試圖使用'shrinkResources true'時,我得到了和你一樣的錯誤。你能提交一個錯誤,然後把它鏈接回來嗎?這對所有人都有幫助,謝謝! https://issuetracker.google.com/issues/new?component=316045&template=1018787 –

+0

謝謝。提交https://issuetracker.google.com/issues/new?component=316045&template=1018787 – Elye

+0

@Elye您能分享問題鏈接嗎?我無法找到它https://issuetracker.google.com/issues?q=componentid:316045%20shrinkResources或https://issuetracker.google.com/issues?q=componentid:316045謝謝! –

回答

3

根據我從文章中所瞭解的內容(我剛剛閱讀了這篇文章,仍然待在我的閱讀列表中),shrinkResources true僅用於縮小APK的大小removing unused resources,但它不是Instant Apps的正式要求。我猜工具鏈不能決定一個資源是否會在庫中未被使用,因爲最終的APK沒有被構建。

因此,如果項目中沒有未使用的資源,不應該是一個問題,可以刪除。

然後,有一件事情可能在您的項目中是錯誤的(沒有自己試過Instant Apps,只是閱讀並看到Google IO談判):據我所知,即時應用程序的所有模塊都是APK,不是圖書館。所以,如果您將shrinkResources true應用於APK,則應該很好。如果您的項目中有用於組裝最終APK模塊的庫,那麼請在那裏刪除shrinkResources true,並將其留在模塊中。

+1

即時應用程序中的功能將被轉變爲APK。所以它是一個APK和而不是圖書館,這就是爲什麼奇怪的是,作爲'shrinkResources'的投訴不能使用。 – Elye

+0

感謝您的澄清!然後,對我來說,它似乎是一個錯誤,同意我會留意一個你' –

1

我認爲這不是和AndroidStudio的bug,而是一個Gradle的bug。 我正在嘗試與Jenkins一起構建Gradle的更新版本(以前使用com.android.tools.build:gradle:2.2.3,將其升級到com.android.tools.build:gradle:3.0.1)並且我仍然收到錯誤

「>資源收縮器不能用於庫」。

+0

如果您有其他問題,您可以向Google提出問題並向Google提交錯誤,然後將其重新鏈接到此處?對所有人都有幫助,謝謝!https://issuetracker.google.com/問題/新?組件= 316045&模板= 1018787 –