标签: android-volley

A/Looper:无法创建尾管.错误号= 24

我们正在构建一个应用程序,可以执行大量动画并下载大量图像.在一定数量的事务(可预测的数字)之后,应用程序崩溃并出现错误:

A/Looper: Could not create wake pipe. errno=24
Run Code Online (Sandbox Code Playgroud)

我们在代码中不使用Looper,但我们使用的一些库确实使用了Looper:

  1. ActionBarSherlock:我不认为这是罪魁祸首
  2. facebook:我不认为这是罪魁祸首
  3. nineoldandroid:这个动画库可能是罪魁祸首
  4. 凌空:这可能不是罪魁祸首
  5. 毕加索:这可能是罪魁祸首

有没有任何机构经历过任何这些库的Looper错误,并知道如何解决?

android looper nineoldandroids android-volley picasso

9
推荐指数
1
解决办法
4161
查看次数

Android凌空通过图片上传发送两次信息

我试图从我的发布数据发送到我的服务器的图像从android.为了实现这一点,我将64位编码的我的图像编码为字符串并使用android volley库发送它.但这会引起问题.由于某种原因,它有时会发送两次帖子,我无法弄清楚原因.下面是调用发送post请求的函数.我在那里放了一个破记标记,String url = "http://domain.com/ajax_ws.php";然后在protected Map<String, String> getParams() {我发现的String url = ...内容中只有一个被调用一次但是当它发送两个时,它protected Map...被调用两次.我在android排球上找不到任何文档,所以我不知道为什么会这样.调整位图大小,使图像字符串始终保持在100k到200k字符之间.我想也许这是一个大小问题,但我的服务器正在接收图像并解码它们,一切都很好.

 public void Sharing() {

    pd = ProgressDialog.show(getParent(), null, "Please Wait...");
    final String caption = mEtMessage.getText().toString();
    RequestQueue queue = Volley.newRequestQueue(this);
    String url = "http://domain.com/ajax_ws.php";
    StringRequest postRequest = new StringRequest(
            Request.Method.POST,
            url,
            new MyStringListener(),
            new MyErrorListener()
    ) {
        @Override
        protected Map<String, String> getParams() {
            Map<String, String> params = new HashMap<String, String>();
            params.put("token", "secretToken");
            params.put("mode", "createVoucher");
            params.put("user_id", ActivityLogin.id);
            params.put("deal_id", ActivitySharing.id_deal);
            params.put("user_id_company", ActivityRestaurantDetails.res.getId()); …
Run Code Online (Sandbox Code Playgroud)

php android android-volley

9
推荐指数
3
解决办法
6730
查看次数

Android,Volley Request,响应是阻塞主线程

使用Volley处理大型响应时会发生一些不好的事情:

String url = AppHelper.DOMAIN + "/service/pages/profile_update.json";

this.infoTextView.setText(getString(R.string.profile_info_updating));

final StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
        new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                try {
                    JSONObject json = new JSONObject(response);

                    if (json.getBoolean("success")) {
                        // manage JSON object here
                    } else {
                        Toast.makeText(ProfileActivity.this,
                                getString(R.string.connection_problem_server),
                                Toast.LENGTH_LONG).show();
                    }
                } catch (JSONException e) {
                    ProfileActivity.this.infoTextView.setText(
                            getString(R.string.profile_info_updating_error));

                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        ProfileActivity.this.infoTextView.setText(
                getString(R.string.profile_info_updating_error));

        if (error.networkResponse != null && error.networkResponse.statusCode == 401) {
            Toast.makeText(ProfileActivity.this,
                    getString(R.string.connection_problem_permission),
                    Toast.LENGTH_LONG).show(); …
Run Code Online (Sandbox Code Playgroud)

java multithreading android android-volley

9
推荐指数
1
解决办法
6496
查看次数

如何将json数组作为post请求发送?

我正在使用volley进行json解析.我想使用POST向服务器端发送一些数据.我想发送.现在任何人都可以告诉我如何将过滤器阵列发送到服务器?

以下是我的代码段.我也尝试HashmapJsonobject.但得到这个错误.

错误:

org.json.JSONException: Value  at Data of type java.lang.String cannot be converted to JSONObject
Run Code Online (Sandbox Code Playgroud)

格式

{
    "typeName": "MANUFACTURER",
    "typeId": 22,
    "cityId": 308,
    "sortBy": "productname",
    "sortOrder": "desc",
    "filter":[
                {
                    "filterId":101,
                    "typeName":"CAT_ID",

                     "filterId":102,
                    "typeName":"CAT_ID"
                }
             ]
}
Run Code Online (Sandbox Code Playgroud)

对于Code Check pastie

https://pastebin.com/u5qD8e2j

android json android-volley jsonobjectrequest

9
推荐指数
2
解决办法
2万
查看次数

实例化核心Volley对象

我对Volley有点不确定的是RequestQueue,ImageLoader对象和ImageLoader.ImageCache实现.

在我遇到的示例中,它们是在onCreate()中实例化的,但是为每个活动创建一个新的请求队列似乎没有意义.我也有大量的活动和服务,我将在任何地方使用它.如果我真的必须在每个服务或活动中实例化它们,它们有多贵?

生产应用程序用于实例化和访问这些对象的最佳实践是什么?

android android-volley

8
推荐指数
1
解决办法
5253
查看次数

针对一个请求,Android Volley返回结果两次

我一直试图弄清楚这个问题两天了,而且我完全难以理解.出于某种原因,我正在向队列发送一个请求,但是volley返回两次,这是两次调用侦听器并在listview中将结果加倍.我打开了Volley的日志记录,我可以看到请求被添加到队列并返回,然后几秒钟后也会返回相同的请求.记录下面

V/Volley(14666): [188] CacheDispatcher.run: start new dispatcher
11-15 12:29:30.152: V/Volley(14666): [1] RequestQueue.add: Request for cacheKey=http://reallylongurl is in flight, putting on hold.
11-15 12:29:39.722: V/Volley(14666): [1] RequestQueue.finish: Releasing 1 waiting requests for cacheKey=http://reallylongurl.
11-15 12:29:39.722: D/Volley(14666): [1] MarkerLog.finish: (9809 ms) [ ] http://reallylongurl 0xd68d6603 NORMAL 1
11-15 12:29:39.732: D/Volley(14666): [1] MarkerLog.finish: (+0   ) [ 1] add-to-queue
11-15 12:29:39.732: D/Volley(14666): [1] MarkerLog.finish: (+2169) [188] cache-queue-take
11-15 12:29:39.742: D/Volley(14666): [1] MarkerLog.finish: (+37  ) [188] cache-hit
11-15 12:29:39.742: D/Volley(14666): [1] MarkerLog.finish: (+6878) [188] cache-hit-parsed …
Run Code Online (Sandbox Code Playgroud)

android android-volley

8
推荐指数
1
解决办法
6730
查看次数

Android Volley PUT请求

我是Volley和Android的新手.下面是我正在尝试执行的代码片段(Android使用Volley),但它是服务器返回400.使用另一个REST客户端完美地工作.这是使用PUT方法向服务器发出的请求.

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

private void sendRequest() {
    RequestQueue queue = Volley.newRequestQueue(this);

    final JSONObject jsonObject = new JSONObject();
    try {
        jsonObject.put("password", "ttttt");
        jsonObject.put("username", "tester3");
        jsonObject.put("token", "blah");
    } catch (JSONException e) {
        // handle exception
    }


    JsonObjectRequest putRequest = new JsonObjectRequest(Request.Method.PUT, url, jsonObject,
            new Response.Listener<JSONObject>()
            {
                @Override
                public void onResponse(JSONObject response) {
                    // response
                    Log.d("Response", response.toString());
                }
            },
            new Response.ErrorListener()
            {
                @Override
                public void onErrorResponse(VolleyError error) {
                    // error
                    Log.d("Error.Response", error.toString());
                }
            }
    ) …
Run Code Online (Sandbox Code Playgroud)

java rest android android-volley

8
推荐指数
2
解决办法
1万
查看次数

为什么Volley会回归到SSLV3?

我一直在监视我的应用程序错误,我看到以下错误太多次了

 javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0xb8f0fc28: Failure in SSL library, usually a protocol error
Run Code Online (Sandbox Code Playgroud)

错误:14077410:SSL例程:SSL23_GET_SERVER_HELLO:sslv3警报握手失败(外部/ openssl/ssl/s23_clnt.c:741 0xaa48cd5c:0x00000000)-javax.net.ssl.SSLHandshakeException:javax.net.ssl.SSLProtocolException:SSL握手已中止: ssl = 0xb8f0fc28:SSL库失败,通常是协议错误错误:14077410:SSL例程:SSL23_GET_SERVER_HELLO:sslv3警报握手失败(外部/ openssl/ssl/s23_clnt.c:741 0xaa48cd5c:0x00000000)

您可以看到错误是关于SSLV3而我的服务器仅支持TLSV1.2.

看起来在某些客户端,Volley回归使用SSLV3(出于某种原因)并且他们收到错误.

收到此错误的用户在Android 4.4.2,4.4.4和4.1.1及更高版本上.

有趣的是,我也在同一个应用程序中使用DefaultHttpClient,但它似乎没有报告相同的问题.

我在Volley中使用默认的HurlStack

我已经看到以下内容... 在HttpsURLConnection中禁用SSL作为协议

https://code.google.com/p/android/issues/detail?id=78187

那么我的选择是什么?

  1. 我的假设是否正确,Volley会回归到SSLV3?

  2. 为什么凌空倒退到SSLV3?换句话说,导致回退的原始失败是什么以及如何解决?

  3. 我最近下载了Volley,但我不确定它是最新的.我如何找到我的版本?

有什么想法吗?

ssl android sslhandshakeexception sslv3 android-volley

8
推荐指数
1
解决办法
2769
查看次数

添加ImageLoader时,getInstance(this)中的Android Volley错误

我在Android开发人员上使用Volley跟踪图像兑现教程,我遇到了请求图像请求并缓存它的问题,我想因为我创建的singelton(从教程中复制).

我的Eclipse给出了错误,getInstance(this)因为这是上下文,我想要一个图像.

ImageRequest request = new ImageRequest(
    url,
    new Response.Listener<Bitmap>() {
        @Override
        public void onResponse(Bitmap bitmap) {
            mNetworkImageView = (NetworkImageView) findViewById(R.id.ImageView);
            mImageLoader = MySingleton.getInstance(this).getImageLoader();
            mNetworkImageView.setImageUrl(IMAGE_URL, mImageLoader);
        //  mImageLoader = MySingleton.getInstance(this).getImageLoader();
        //  mImageLoader.get(IMAGE_URL, ImageLoader.getImageListener(mImageView,
        //      R.drawable.ic_launcher, R.drawable.ic_launcher));
            }
        },
    0,
    0,
    null,
    new Response.ErrorListener() {
        public void onErrorResponse(VolleyError error) {
        //  mImageView.setImageResource(R.drawable.ic_launcher);
        }
    });
MySingleton.getInstance(this).addToRequestQueue(request);
Run Code Online (Sandbox Code Playgroud)

这是单身人士:

package com.example.p;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.Volley;

import android.content.Context;
import android.graphics.Bitmap;
import android.support.v4.util.LruCache;

public class MySingleton …
Run Code Online (Sandbox Code Playgroud)

singleton android android-volley

8
推荐指数
1
解决办法
7033
查看次数

Volley的响应处理

Volley在我的项目中用于处理网络请求.这是JSON我的服务器返回的示例

JSON对象响应

{"code":"success", "data":{"some data"}}
Run Code Online (Sandbox Code Playgroud)

JSON数组响应

{"code":"success", "data":["some data"]}
Run Code Online (Sandbox Code Playgroud)

发生某些验证错误或任何其他错误时,服务器返回以下响应:

{"code":"failed", "error":"Access denied"}
Run Code Online (Sandbox Code Playgroud)

问题在于解析数据.当请求成功onResponseResponseListener,我只需获取data密钥的内容.在哪里,我期待的结果与我上面发布的相同.我不知道为什么Volley只返回内容data而不是完整内容JSON.我Volley之前也用过.但从未遇到过这类问题.

解析代码:

private void getOnboardingCategories() {
    Response.Listener<JSONArray> responseListener = new Response.Listener<JSONArray>() {

        @Override
        public void onResponse(JSONArray response) {
            Log.d(LOG_TAG, "CATEGORY RESPONSE: " + response.toString());
            if (response != null) {
                int dataLength = response.length();
                for (int i = 0; i < dataLength; i++) {
                    JSONObject jObject = response.optJSONObject(i);
                    if (jObject …
Run Code Online (Sandbox Code Playgroud)

android json android-volley

8
推荐指数
1
解决办法
2万
查看次数