2016-07-19 19 views
0

下記のコードから次のエラーが発生しています。それは仮想デバイス上で楽しく動作するようですが、すぐに実際のデバイス上で実行するとクラッシュします。 java.lang.ClassCastExceptionが:Androidユーザ設定エラー

によって引き起こさjava.lang.Integerのがandroid.app.SharedPreferencesImpl.getStringでjava.lang.Stringで にキャストすることはできません(SharedPreferencesImpl.java:223)

エラーを投げると思われる関数のコードを次に示します。

public void queueJump2() { 



     ParseQuery<ParseObject> query = ParseQuery.getQuery("settings"); 
     query.getInBackground("BauCSafDjA", new GetCallback<ParseObject>() { 
      public void done(ParseObject object, ParseException e) { 
       if (e == null) { 


        String queueJumpActive = object.getString("status"); 

        Log.i("QUEUE JUMP STATUS >>",queueJumpActive); 


        if (!queueJumpActive.equals("active")){ 

         Button qjumpButton = (Button)findViewById(R.id.qjumpButton); 
         qjumpButton.setText("DISABLED"); 

        } else { 



         Long tsLong = System.currentTimeMillis()/1000; 
         String ts = tsLong.toString(); 

         Long dayAgoLong = (System.currentTimeMillis()/1000)-84600; 
         String dayAgo = dayAgoLong.toString(); 

         Log.i("Current Time Stamp: ", ts.toString()); 
         Log.i("dayAgo >>: ", dayAgo.toString()); 

         Date dNow = new Date(); 
         SimpleDateFormat ft = 
           new SimpleDateFormat ("HH"); 

         TimeZone tz = TimeZone.getTimeZone("EST"); 
         boolean inDs = tz.inDaylightTime(new Date()); 

if (String.valueOf(inDs) == "false") { 
+0

クラッシュの原因となるコード行はどれですか? –

+0

文字列queueJumpActive = object.getString( "status"); - thats line 223 – MattBlack

答えて

1

sharedpreferenceに整数を追加して文字列として取得しようとしている可能性があります。このように文字列「ステータス」を追加してみてください。

Editor editor = sharedpreferences.edit(); 
editor.putString("status",string.valueof(YOUR STATUS INTEGR)); 
editor.commit(); 
+0

私はデバイスからアプリケーションをアンインストールしましたが、そうであってはならない設定に何かが保存されているようでした。ありがとう! – MattBlack