Java android KITKAT和旧版本的问题
我在Java android KITKAT和旧版本的问题,java,android,Java,Android,我在imageView中查看来自url的图像,该代码适用于android棒棒糖和较新版本,但不适用于android Kitkat和较旧版本,它返回一个空白图像,而不是url图像。。这是我的代码: HomeActivity.java private static final String ALLOWED_URI_CHARS = "@#&=*+-_.,:!?()/~'%"; @Override protected void onCreate(Bundle savedInstanceStat
imageView
中查看来自url的图像,该代码适用于android棒棒糖和较新版本,但不适用于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
文件中包含了互联网权限
有什么建议吗?试试这个:
Picasso.with(HomeActivity.this).setLoggingEnabled(true);
使用该代码,您可以查看毕加索的日志。尝试以下操作:
Picasso.with(HomeActivity.this).setLoggingEnabled(true);
使用该代码,您可以查看毕加索的日志。检查代码后。我已经演示了你的问题。所以我附上了截图和所有细节,包括更好地分析问题并解决问题的解决方案 首先**在毕加索**中,它表示来自服务器的错误。 在日志中,你可以看到 我通过更好的日志记录更深入地挖掘了你的问题 这是我从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\u获取\u服务器\u你好:sslv3警报
握手失败(外部/openssl/ssl/s23\u clnt.c:741
0x5dafe6ed:0x00000000)
您可以看到这是**SSL握手失败**。这个问题只有在检查代码之后才会出现。我已经演示了你的问题。所以我附上了截图和所有细节,包括更好地分析问题并解决问题的解决方案 首先**在毕加索**中,它表示来自服务器的错误。 在日志中,你可以看到 我通过更好的日志记录更深入地挖掘了你的问题 这是我从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\u获取\u服务器\u你好:sslv3警报
握手失败(外部/openssl/ssl/s23\u clnt.c:741
0x5dafe6ed:0x00000000)
您可以看到这是**SSL握手失败**。这个问题只会出现,请你的问题解释一下“不工作”的确切含义。我编辑了我的问题,我想问题可能是你的url中的乌尔都语文本。对于测试,请尝试使用简单的英文url。对我来说似乎是编码问题。@VivekMishra如果是编码问题,那么为什么要在棒棒糖上运行而不是在KitKat上运行?您可以从kitecat设备internet浏览器打开图像url؟.jpg吗?请您的问题解释“不工作”的确切含义。我编辑了我的问题,我想问题可能是url中的乌尔都语文本。对于测试,请尝试使用简单的英文url。对我来说似乎是编码问题。@VivekMishra如果这是编码问题,那么为什么要在棒棒糖上运行而不是使用kitkat?您可以从kitecat设备internet浏览器打开图像url؟.jpg吗?您的具体问题是什么?在棒棒糖上,应用程序正在运行,url图像被正确查看,但使用kitkat它无法查看图像。。你的问题到底是什么?在棒棒糖上,应用程序运行正常,url图像被正确查看,但在kitkat上,它看不到图像。。请告诉我如何在上图中显示我与毕加索的url?请告诉我如何在上图中显示我与毕加索的url?