2016-01-11 18 views
0

我有這種奇怪的行爲,在我的三星Galaxy上,我得到這個bug,它找不到類R$styleable。當我在Nexus 5或Nexus 4上運行相同的代碼時,我沒有遇到問題,一切正常。

在那裏我得到這個例外是在我的自定義Spinner實施ImageSpinner行:

TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ImageSpinner); 

這是例外,我得到:

java.lang.RuntimeException: Unable to start activity ComponentInfo{my.package.name/my.package.name.NavigationSetupActivity}: android.view.InflateException: Binary XML file line #39: Error inflating class my.package.name.views.ImageSpinner 

Caused by: java.lang.NoClassDefFoundError: my.package.name.R$styleable 

這是一個位於值的風格化的文件/ attrs.xml:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <declare-styleable name="ImageSpinner"> 
     <attr name="arrowTint" format="color" /> 
     <attr name="hideArrow" format="boolean" /> 
    </declare-styleable> 
</resources> 

操作系統版本的三星Galaxy手機是4.2.2(CyanogenMod),但也在股票三星Android操作系統它崩潰。 Nexus 5是6.0.1,Nexus 4是棒棒糖版本。 Thhe SDK工具和編譯版本的下列內容:

compileSdkVersion 23 
buildToolsVersion '23.0.2' 
minSdkVersion 16 
targetSdkVersion 23 

我試圖清理項目,並檢查資源文件,一切似乎是確定的,但我真的沒有更多的想法如何處理這個問題。有沒有人有一個想法如何解決這個問題?

謝謝你的時間!

回答

1

如果您在舊版本上運行該應用程序,則必須將: compile-sdk更改爲較低的sdks。這就是爲什麼該應用程序適用於某些較新的手機,而不適用於您提及的其他手機。 check out this link

可刪除的類已從較新的SDK中刪除,因爲屬性在SDK版本之間不斷變化。 這就是爲什麼你越來越序的錯誤使用設置樣式類,你必須使用舊版本的SDK

java.lang.RuntimeException: Unable to start activity ComponentInfo{my.package.name/my.package.name.NavigationSetupActivity}: android.view.InflateException: Binary XML file line #39: Error inflating class my.package.name.views.ImageSpinner 


Caused by: java.lang.NoClassDefFoundError: my.package.name.R$styleable 
+0

但爲什麼它的工作對我的Nexus手機的? – Aksiom

+0

您是否有任何確認從菜單中刪除了R.styleable的源代碼,因爲我找不到任何代碼。 – Aksiom

+0

你在這裏我提供了一個鏈接 –

相關問題