【问题标题】:I get java.lang.NegativeArraySizeException: -1 on my blog我在我的博客上得到 java.lang.NegativeArraySizeException: -1
【发布时间】:2015-09-06 01:47:54
【问题描述】:

我正在尝试创建一个从我的网站解析代码并将其显示在 listActivity 上的应用程序。我尝试使用几个网站.. 他们都工作正常。但是我的网站显示了这个 java.lang.NegativeArraySizeException: -1 异常!

package com.example.hamad.jsonparsingverybasic;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.TextView;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.HttpURLConnection;
import java.net.URL;

public class MainActivity extends AppCompatActivity {

    public static final String TAG = "log";
    TextView network;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        network = (TextView) findViewById(R.id.networkStatus);

        if (isNetworkAvailable()) {
            GetBlogPosts getBlogPosts = new GetBlogPosts();
            getBlogPosts.execute();
            network.setText("Network: Available!");
        } else {
            network.setText("Network: Not available!");
        }
    }

    private boolean isNetworkAvailable() {
        ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = manager.getActiveNetworkInfo();
        boolean netWorkAvailable = false;
        if (networkInfo != null && networkInfo.isConnected()) {
            netWorkAvailable = true;
        }
        return netWorkAvailable;
    }

    private class GetBlogPosts extends AsyncTask<Object, Void, String> {
        int responseCode = 0;

        @Override
        protected String doInBackground(Object[] params) {
            try {
                URL blogURL = new URL("http://trapedzone.com/api/info/");
                HttpURLConnection connection = (HttpURLConnection) blogURL.openConnection();
                connection.connect();

                responseCode = connection.getResponseCode();
                if (responseCode == HttpURLConnection.HTTP_OK) {
                    try {
                        InputStream inputStream = connection.getInputStream();
                        Reader reader = new InputStreamReader(inputStream);
                        int contentLength = connection.getContentLength();
                        char[] charArray = new char[contentLength];
                        reader.read(charArray);
                        String responseData = new String(charArray);
                        Log.v(TAG, responseData);
                    } catch (Exception e) {
                    }
                } else {
                    Log.e(TAG, "Bad response code: " + responseCode);
                }
            } catch (Exception e) {
                Log.e(TAG, "Error: " + e);
            }
            return "Code: " + responseCode;
        }
    }
}

在执行时,它会在我的网站http://trapedzone.com 上引发 java.lang.NegativeArraySizeException: -1 异常,但当我在我的其他网站http://trapedhost.com 上使用它时效果很好 请帮忙。我的网站是否有问题,或者我可以在 Java 代码中修复。

【问题讨论】:

标签: java android json parsing connection


【解决方案1】:

如果您发布堆栈跟踪会有所帮助。

但是,您发布的代码中只有一行可能会产生该错误: char[] charArray = new char[contentLength];

所以,我会冒险猜测 connection.getCONtentLength() 正在返回 -1。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-29
    • 2013-07-12
    • 2023-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多