2015-09-17 30 views
2

Android M已經改變了StaticLayout的setter方法,取而代之的是Builder模式。但是,下面的代碼:爲什麼調用StaticLayout.Builder會拋出異常java.lang.NoClassDefFoundError?

StaticLayout staticLayout = StaticLayout.Builder.obtain("Hello", 0, "Hello".length(), getTextPaint(), 100).build(); 

我得到以下異常:

Process: sharpdevs.com.legalapp, PID: 7695 java.lang.NoClassDefFoundError: Failed resolution of: Landroid/text/StaticLayout$Builder;

我用盡了一切,可這是一個Android的錯誤還是我失去了一個支持庫的依賴?

+1

這聽起來有點顯而易見,但是您確定您正在Android M/6.0設備上運行代碼嗎? –

+0

你是對的,我不知道我是如何錯過顯而易見的,我以爲我正在運行一個API 23模擬器。 – stefdev777

回答

1

它看起來像這樣的問題已經在評論中得到解決,因此將其添加爲一個實際的答案...

StaticLayout.Builder在API 23中添加,所以嘗試在較早的API運行會引起一個例外。對於較早的API版本,您可以使用標準的StaticLayout構造函數。

相關問題