2016-06-10 32 views
0

我特林解決非常奇怪的問題Android的SharedPreferences不工作

我有一個在我所有的測試設備的Nexus 5的工作的偉大,恢復出廠設置後,當它試圖得到一個int的應用從代碼SharedPreferences

LEVEL_MAXIMO_ALCANZADO = sp.getInt(SP_NIVEL_JUEGO_MAXIMO, 1);

它給我一個字符串(但僅限於Nexus 5,系統中的其他設備它給我的INT,但在我的Nexus 5引起異常java.lang.String cannot be cast to java.lang.Integer

如果我得到的字符串的值與代碼

String prueba = sp.getString(SP_NIVEL_JUEGO_MAXIMO, "1"); 

我得到的5t+SNTiVFHA=

值我沒有任何想法,爲什麼在Nexus 5的這隻通廠後重置

如果有人可以給小費跟隨這將是真棒,我在這一點上很失落

碼 - (CTX是一個上下文對象)

public static SharedPreferences sp; 
public static SharedPreferences.Editor editor; 

    if(sp == null) sp = ctx.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE); 
    if(editor == null) editor = sp.edit(); 

    editor.putInt(SP_DINERO, DINERO); 
    editor.commit(); 

其他信息

我也tryed以反安裝程序,然後重新啓動設備

我用ObscuredSharedPreferences其進行加密,並在該類它給我墊塊損壞的異常類,然後我換到SharedPreferences但

我做了恢復出廠設置,由於一個問題,我的phonne說,當只有5GB使用

所以馬是完全同樣的錯誤ybe是設備上的內存問題?

+0

使用助手類:https://github.com/viralypatel/Android-SharedPreferences-Helper – AndroidMechanic

+1

您可以發佈代碼保存值的位置以及sp對象的製作位置。 – Sanoop

+3

不可能.. !! –

回答

0

我剛剛作出了一個復位(擦拭緩存和擦拭數據,並從引導裝載程序恢復出廠設置),現在它重新工作

我認爲,內存被損壞了,這是失敗的。