【问题标题】:issue with android KITKAT and older versionsandroid KITKAT 和旧版本的问题
【发布时间】:2018-02-14 12:05:01
【问题描述】:

我正在查看来自imageView 中 url 的图像,该代码适用于 android lollipop 和更新版本,但不适用于 android Kitkat 和旧版本,它返回一个空白图像而不是 url 图像.. 这是我的代码: HomeActivity.java

private static final String ALLOWED_URI_CHARS = "@#&=*+-_.,:!?()/~'%";

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


    final ImageView imageView = (ImageView) findViewById(R.id.imageView);
    final String url =
            "https://arabian-chemistry.com/wp-content/uploads/2018/01/ما-الذي-يؤخر-العلاج-بتقنية-CRISPR؟.jpg";


    URI I = null;
    try {
        URL u = new URL(url);
        I = new URI(u.getProtocol(), u.getUserInfo(), u.getHost(), u.getPort(), u.getPath(), u.getQuery(), u.getRef());

    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }
    final String urlEncoded = Uri.encode(url, ALLOWED_URI_CHARS);
    final String ui = I.toASCIIString();


    imageView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Picasso.with(HomeActivity.this).load(ui).resize(48, 48).placeholder(R.color.colorPrimaryDark).into(imageView);
            Toast.makeText(HomeActivity.this, "url is: " + ui, Toast.LENGTH_SHORT).show();


        }
    });
}}  

activity_home.xml

   <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorAccent"
tools:context="com.alpha25.gridview.HomeActivity">



<ImageView
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:id="@+id/imageView"
    />



</RelativeLayout>

我在 AndroidManifest 文件中包含了 Internet 权限

有什么建议吗?

【问题讨论】:

  • edit您的问题准确解释“不工作”的含义。
  • 我编辑了我的问题
  • 我认为问题可能出在网址中的乌尔都语文本上。如需测试,请尝试使用简单的英文网址。对我来说似乎是编码问题。
  • @VivekMishra 如果是编码问题,那么为什么要在棒棒糖上运行而不是在 kitkat 上运行
  • 你能从 kitecat 设备的互联网浏览器中打开图片 url arabian-chemistry.com/wp-content/uploads/2018/01/…؟.jpg 吗?

标签: java android


【解决方案1】:

检查您的代码后。我已经为你的问题做了一个演示。所以我附上了屏幕截图和所有细节,包括更好地分析和解决问题的解决方案。

首先。 **在毕加索**中,它表示来自服务器的错误。 在日志中,您可以看到。

我通过更好的日志记录更深入地挖掘了您的问题...

这是我从 glide 库中获得的信息...

W/Glide: Load failed for https://arabian-chemistry.com/wp-content/uploads/2016/07/ptable.png with size [200x200]  class com.bumptech.glide.load.engine.GlideException: Failed to load resource
                                                                     Cause (1 of 1): class com.bumptech.glide.load.engine.GlideException: Fetching data failed, class java.io.InputStream, REMOTE
                                                                       Cause (1 of 1): class com.bumptech.glide.load.engine.GlideException: Fetch failed
                                                                         Cause (1 of 1): class javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x608e5f90: Failure in SSL library, usually a protocol error
                                                                   error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure (external/openssl/ssl/s23_clnt.c:741 0x5dafe6ed:0x00000000)

从这一行开始。

错误:14077410:SSL 例程:SSL23_GET_SERVER_HELLO:sslv3 警报 握手失败(外部/openssl/ssl/s23_clnt.c:741 0x5dafe6ed:0x00000000)

您可以看到这是一个 **SSL 握手失败 **。此问题仅出现 API

可以通过从启用的协议列表中删除 SSLv3 协议来解决此问题。您必须创建一个名为 NoSSLv3SocketFactory

的自定义 socketFactory 类

具体如何实现,可以get a reference from this post

所以。之后,您的问题将得到解决。不过,如果您遇到任何困难,您可以随意发表评论。

【讨论】:

  • 拜托,你能告诉我如何通过上面的插图把我的网址和毕加索放在一起吗?
【解决方案2】:

试试这个:

Picasso.with(HomeActivity.this).setLoggingEnabled(true); 

使用该代码,您可以查看毕加索的日志。

【讨论】:

  • 你的问题到底是什么?
  • 在棒棒糖上,该应用程序正在运行,并且可以正确查看网址图像,但是使用 kitkat 它看不到图像..只是空白
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多