2016-01-01 7 views
8

Parseから自分のレコードを回復しようとしています。クラスは評価と呼ばれます。 5つ以下のレコードを見つけようとすると、問題はありません。私はより多くのレコードを検索しようとする。しかし、次のスタックが示されている:Android Parse SDK入出力の不明な形式(マジックナンバー227b)

com.parse.ParseRequest$ParseRequestException: i/o failure 
at com.parse.ParseRequest.newTemporaryException(ParseRequest.java:289) 
at com.parse.ParseRequest$2.then(ParseRequest.java:144) 
at com.parse.ParseRequest$2.then(ParseRequest.java:138) 
at bolts.Task$15.run(Task.java:839) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
at java.lang.Thread.run(Thread.java:841) 
Caused by: java.io.IOException: unknown format (magic number 227b) 
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:101) 
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:81) 
at com.parse.ParseDecompressInterceptor.intercept(ParseDecompressInterceptor.java:40) 
at com.parse.ParseHttpClient$ParseNetworkInterceptorChain.proceed(ParseHttpClient.java:147) 
at com.parse.ParsePlugins$1.intercept(ParsePlugins.java:115) 
at com.parse.ParseHttpClient$ParseNetworkInterceptorChain.proceed(ParseHttpClient.java:147) 
at com.parse.ParseHttpClient.execute(ParseHttpClient.java:122) 
at com.parse.ParseRequest$3.then(ParseRequest.java:135) 
at com.parse.ParseRequest$3.then(ParseRequest.java:132) 
at bolts.Task$15.run(Task.java:839) 
at bolts.BoltsExecutors$ImmediateExecutor.execute(BoltsExecutors.java:105) 
at bolts.Task.completeAfterTask(Task.java:830) 
at bolts.Task.continueWithTask(Task.java:642) 
at bolts.Task.continueWithTask(Task.java:653) 
at bolts.Task$13.then(Task.java:745) 
at bolts.Task$13.then(Task.java:733) 
... 4 more 

誰もがなぜこれが起こっている任意の手掛かりを持っていますか?

+0

2週間前にクエリに問題が発生しました –

+2

これは確認済みのバグです。バージョン1.13.0で修正される予定です。今のところ、1.11にロールバックするか、 'ParseLogInterceptor'を追加することができます。 –

答えて

7

をスローします(「com.parseをコンパイルします。パースアンドロイド:1.11.0 ')。これまでのところ問題はありません。

+2

これは今のところ唯一の解決策でした。明らかにそのコードにバグがあります。 –

+1

完璧な男、私のために働いた。私はこの問題のためにここに私の質問を書いていました。私は今2週間それを盗んできた。 –

+0

私は同じ問題を抱えていました。 1.12.0から1.11.0にダウングレードされました。確かに1.12.0のバグでなければなりません。 – fes

3

私はAndroidのアピ19と問合せ作業罰金を同じバグを持っていますが、私と一緒に、古いバージョンでは、それは私が1.11.0バージョンを使用しています動作させるために、この例外

+1

ここに同じ!それはなぜ起こっているのですか? –

+2

私はちょうどこれを得るようになった...まだ解決策はありません。 –

2

クラスParseLogInterceptorを作成

public class ParseLogInterceptor implements ParseNetworkInterceptor { 
@Override 
public ParseHttpResponse intercept(Chain chain) throws IOException { 
    ParseHttpRequest request = chain.getRequest(); 

    ParseHttpResponse response = chain.proceed(request); 

    // Consume the response body 
    ByteArrayOutputStream responseBodyByteStream = new ByteArrayOutputStream(); 
    int n; 
    byte[] buffer = new byte[1024]; 
    while ((n = response.getContent().read(buffer, 0, buffer.length)) != -1) { 
    responseBodyByteStream.write(buffer, 0, n); 
    } 
    final byte[] responseBodyBytes = responseBodyByteStream.toByteArray(); 
    Log.i("Response_Body", new String(responseBodyBytes)); 

    // Make a new response before return the response 
    response = new ParseHttpResponse.Builder(response) 
     .setContent(new ByteArrayInputStream(responseBodyBytes)) 
     .build(); 

    return response; 
}} 

)(Parse.initialize前にこれを追加します。

Parse.addParseNetworkInterceptor(new ParseLogInterceptor()); 

それは私のために動作します。

出典:https://github.com/ParsePlatform/Parse-SDK-Android/issues/325

1

これは、解析1.12.0のバグです。私はhttps://github.com/ParsePlatform/Parse-SDK-Android/issues/355というリポジトリに問題をオープンしました。開発者はそれを再現して修正を行っています。

他にも言及しているように、現在の回避策は1.11.0にフォールバックするか、API19以上でコンパイルすることです。

関連する問題