下载图像并显示它

2024-06-01

应用程序的主要目的是下载和显示图像,但是当我尝试启动应用程序时它崩溃了。

这是我的代码。

private DownloadImageTask task;

protected void onCreate(Bundle savedInstanceState) {
    task = new DownloadImageTask();
    task.onPostExecute(task.doInBackground("http://parkcinema.az/uploads/structures/movies/images/xickok_poster1_resized.jpg"));
    }

private class DownloadImageTask extends AsyncTask <String, Void, Bitmap> {

    protected Bitmap doInBackground(String... urls) {
        String urldisplay = urls[0];
        Bitmap mIcon11 = null;
        try {
            InputStream in = new java.net.URL(urldisplay).openStream();
            mIcon11 = BitmapFactory.decodeStream(in);
        } catch (Exception e) {
        Log.e("Error", e.getMessage());
        e.printStackTrace();
    }
    return mIcon11;
}        

protected void onPostExecute(Bitmap result) {
      ImageView img = (ImageView) findViewById(R.id.imageView1);
      img.setImageBitmap(result);           
}
}

这是 LogCat:

02-24 11:04:56.814: E/Trace(957): error opening trace file: No such file or directory (2)
02-24 11:04:57.384: D/AndroidRuntime(957): Shutting down VM
02-24 11:04:57.384: W/dalvikvm(957): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
02-24 11:04:57.404: E/AndroidRuntime(957): FATAL EXCEPTION: main
02-24 11:04:57.404: E/AndroidRuntime(957): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.bakumovies/com.example.bakumovies.MainActivity}: java.lang.NullPointerException: println needs a message
02-24 11:04:57.404: E/AndroidRuntime(957):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
02-24 11:04:57.404: E/AndroidRuntime(957):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
02-24 11:04:57.404: E/AndroidRuntime(957):  at android.app.ActivityThread.access$600(ActivityThread.java:130)
02-24 11:04:57.404: E/AndroidRuntime(957):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
02-24 11:04:57.404: E/AndroidRuntime(957):  at android.os.Handler.dispatchMessage(Handler.java:99)
02-24 11:04:57.404: E/AndroidRuntime(957):  at android.os.Looper.loop(Looper.java:137)
02-24 11:04:57.404: E/AndroidRuntime(957):  at android.app.ActivityThread.main(ActivityThread.java:4745)
02-24 11:04:57.404: E/AndroidRuntime(957):  at java.lang.reflect.Method.invokeNative(Native Method)
02-24 11:04:57.404: E/AndroidRuntime(957):  at java.lang.reflect.Method.invoke(Method.java:511)
02-24 11:04:57.404: E/AndroidRuntime(957):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
02-24 11:04:57.404: E/AndroidRuntime(957):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
02-24 11:04:57.404: E/AndroidRuntime(957):  at dalvik.system.NativeStart.main(Native Method)
02-24 11:04:57.404: E/AndroidRuntime(957): Caused by: java.lang.NullPointerException: println needs a message
02-24 11:04:57.404: E/AndroidRuntime(957):  at android.util.Log.println_native(Native Method)
02-24 11:04:57.404: E/AndroidRuntime(957):  at android.util.Log.e(Log.java:231)
02-24 11:04:57.404: E/AndroidRuntime(957):  at com.example.bakumovies.MainActivity$DownloadImageTask.doInBackground(MainActivity.java:49)
02-24 11:04:57.404: E/AndroidRuntime(957):  at com.example.bakumovies.MainActivity.onCreate(MainActivity.java:27)
02-24 11:04:57.404: E/AndroidRuntime(957):  at android.app.Activity.performCreate(Activity.java:5008)
02-24 11:04:57.404: E/AndroidRuntime(957):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
02-24 11:04:57.404: E/AndroidRuntime(957):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
02-24 11:04:57.404: E/AndroidRuntime(957):  ... 11 more

这是 .xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:layout_marginLeft="144dp" />

</RelativeLayout>

我不明白为什么它会崩溃。在新线程中启动图像下载,创建 imageview 对象。我对此完全困惑。 任何帮助将不胜感激。


NPE(空指针异常)的原因

Log.e("错误", e.getMessage()); //e.getMessage() 为 NULL,因此它给出 NPE。

protected void onCreate(Bundle savedInstanceState)
  task = new DownloadImageTask().execute("http://parkcinema.az/uploads/structures/movies/images/xickok_poster1_resized.jpg");
}

protected Bitmap doInBackground(String... urls) {
    String urldisplay = urls[0];
    Bitmap mIcon11 = null;
    try {
        mIcon11 = BitmapFactory.decodeStream(new URL(urldisplay).openConnection().getInputStream());
    } 
    catch (Exception e) {
        e.printStackTrace();
    }
    return mIcon11;
}

在AndroidManifest.xml中添加此权限,因为您正在进行互联网操作。

<uses-permission android:name="android.permission.INTERNET" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

下载图像并显示它 的相关文章

随机推荐

  • 如何在 PHP 数组中的另一个已知(通过键或指针)元素之后有效地插入元素?

    给定一个数组 a array abc 123 k1 gt v1 k2 gt v2 78 tt k3 gt v3 当其内部指针指向其元素之一时 如何在当前元素之后插入元素 如何在键已知元素 例如 k1 之后插入元素 表现护理 您可以通过使用拆
  • 大小为 8 的无效写入,C Valgrind,字符串数组

    我一直在使用 valgrind 和 gdb 但我不太明白问题是什么 它跳来跳去太多了 我无法在 gdb 中真正追踪它 而在 valgrind 中我没有足够的信息 这是我的 makeargv 函数 它将 strtok 输出的字符串放入数组中
  • 在事件聚合器中混合枚举与事件类

    我最近尝试实现自己的简单事件聚合器 我从 MSDN 上的事件聚合器文章中获得了很多灵感 关于 MSDN 上的事件聚合器 我注意到一件事是事件实际上是它们自己的类 这根本不是一件坏事 然而 我只是觉得总是为每个小事件创建一个新的空类很尴尬 我
  • 如何将十六进制数组转换为 UIImage?

    有几个与使用 P25mi 动态打印图像相关的未解答问题 没有一个得到公认的答案 下面有几个链接 如何将图像转换为位图代码以便在 iPhone 中进行蓝牙打印 https stackoverflow com questions 1383828
  • JavaFX - setVisible 隐藏元素但不重新排列相邻节点

    在 JavaFX 中 如果我有一个场景有 2VBox元素和每个VBox有多个Label in it 如果我设置顶部VBox to 无形的 为什么底部VBox 不向上移动顶部的场景VBox was The VBox is 无形的但我希望其他物
  • 可以在 TensorFlow 中使用排名相关作为成本函数吗?

    我正在处理偶尔充满异常值的极其嘈杂的数据 因此我主要依靠相关性来衡量我的神经网络的准确性 是否可以明确使用诸如等级相关性 斯皮尔曼相关系数 之类的东西作为我的成本函数 到目前为止 我主要依赖 MSE 作为相关性的代理 我现在面临三个主要障碍
  • Firebase Cloud Function:& Flutter:无法在模拟器上使用 https 可调用函数 [firebase_functions/unavailable] 不可用

    我试图从我的 flutter 应用程序中使用模拟器调用 HTTPS 可调用函数 但它似乎不起作用 我调用该函数后 总是需要大约 5 秒的时间并返回错误 如果我将该功能部署在服务器上 它就可以完全正常工作 这是我的功能 exports try
  • 我可以在一个查询中更新/选择表吗?

    我需要在查看页面时选择数据并更新 视图 列 有没有一种方法可以在一个查询中执行此操作 或者我是否必须使用不同的查询 如果您不想 不需要使用事务 则可以创建一个存储过程 该过程首先更新视图计数 然后选择值并将其返回给用户
  • swift 中的负数模

    负数模如何在 swift 中工作 当我执行 1 3 时 它给出 1 但余数是 2 其中有什么问题 雨燕余数运算符 计算余数 整数除法 a b a a b b where 是截断整数除法 在你的情况下 1 3 1 1 3 3 1 0 3 1
  • 无法从 Twin.macro 中的 Prop 获取值

    您可以在这里查看我正在尝试执行的操作的示例 https codesandbox io s vibrant leaf qj8vz https codesandbox io s vibrant leaf qj8vz 注意 这个特定的例子使用双宏
  • BISON + FLEX 语法 - 为什么标记被连接在一起

    我想了解为什么 BISON 按照以下规则连接两个标记 stmt declaration assignment exp ID lt this rule fprintf stderr n my id is s 1 如果你检查输出就会明白我的意思
  • 如何在没有 openshift 的情况下托管 Django localhost 应用程序?

    我已经在本地主机中创建了一个 Django 应用程序 现在我需要在互联网上托管 我已经尝试过开档 https www openshift com and 任何地方的Python https www pythonanywhere com也 但
  • 优化 Keras 以使用所有可用的 CPU 资源

    好吧 我真的不知道我在说什么 所以请耐心听我说 我正在使用 Theano 后端运行 Keras 以在 MNIST 图像上运行基本的神经网络 目前只是一个教程 过去 我一直使用我的旧 HP 笔记本电脑 因为我有 Windows 和 Ubunt
  • 如果值大于或小于,则替换数据框中的值

    我在 R 中操作数据帧时遇到问题 这是 R 中的基本内容 但我找不到执行此类操作的最佳命令 虚拟示例 Var1 20 300 39 Var2 49 23 91 Var3 0 239 210 我怎样才能用10如果值小于 则在第 2 列中10
  • .NET PInvoke 可以从用户指定的目录动态加载本机 dll 吗?

    我有一个 NET 应用程序 需要加载一个本机库 其位置由用户指定 PInvoke 看起来只会从全局搜索路径 或编译时指定的路径 加载 最好的方法是创建一个在运行时调用 LoadLibrary 的 C CLI 程序集吗 C CLI 会比 C
  • 如何强制控制器/操作使用 JsonValueProvider

    再会 我正在使用 ASP NET MVC 3 其中JsonValueProvider http haacked com archive 2010 04 15 sending json to an asp net mvc action met
  • 如何在照片删除后刷新 Android 的 MediaStore

    问题 如何使媒体存储刷新其已删除文件的条目 从外部存储中删除代码中的照片后 我仍然在图库中看到已删除照片的插槽 空白照片 画廊似乎反映了媒体存储 并且在媒体存储中找到了已删除的照片 直到手机重新启动或通常 直到重新扫描媒体为止 尝试扫描已删
  • i18n:特定型号的错误消息本地化

    我可以为每个验证本地化错误消息 但如何为特定模型创建错误 普通的语言环境如下所示 en mongoid errors messages taken It is already taken 但我想更改消息user model en mongo
  • 如何修复 Centos 上的 Git Segmentation 错误

    我收到分段错误错误 无法在服务器上提取代码 Centos 7 这就是我遇到错误的方法 通过使用以下命令来验证我的服务器是否使用 bitbucket 进行身份验证 ssh T email protected cdn cgi l email p
  • 下载图像并显示它

    应用程序的主要目的是下载和显示图像 但是当我尝试启动应用程序时它崩溃了 这是我的代码 private DownloadImageTask task protected void onCreate Bundle savedInstanceSt