0

我在运行我的 Android 应用程序时收到错误“无法启动活动组件信息”错误。

这是似乎发生错误的类。

public class GalleryZoom extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.gallery_zoom);

        ImageView image = (ImageView) findViewById(R.id.imageZoom);
        String selection = getIntent().getExtras().getString("image");
        Toast.makeText(this, selection, Toast.LENGTH_LONG).show();


        BitmapFactory.Options bmpOptions;
        bmpOptions = new BitmapFactory.Options();
        bmpOptions.inSampleSize = 1;
        Bitmap bmp = LoadImage(getIntent().getExtras().getString("image"), bmpOptions);
        image.setImageBitmap(bmp);

    }

    private Bitmap LoadImage(String URL, BitmapFactory.Options options) {
        Bitmap bitmap = null;
        InputStream in = null;
        try {
            in = OpenHttpConnection(URL);
            bitmap = BitmapFactory.decodeStream(in, null, options);
            in.close();
        } catch (IOException e1) {
        }
        return bitmap;
    }

    private InputStream OpenHttpConnection(String strURL) throws IOException {
        InputStream inputStream = null;
        URL url = new URL(strURL);
        URLConnection conn = url.openConnection();

        try {
            HttpURLConnection httpConn = (HttpURLConnection) conn;
            httpConn.setRequestMethod("GET");
            httpConn.connect();

            if (httpConn.getResponseCode() == HttpURLConnection.HTTP_OK) {
                inputStream = httpConn.getInputStream();
            }
        } catch (Exception ex) {
        }
        return inputStream;
    }

}

以下是我的 LogCat 错误消息。

07-20 00:15:12.779: D/AndroidRuntime(802): Shutting down VM
07-20 00:15:12.779: W/dalvikvm(802): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
07-20 00:15:12.789: E/AndroidRuntime(802): FATAL EXCEPTION: main
07-20 00:15:12.789: E/AndroidRuntime(802): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.example.mobile.application/com.example.example.mobile.application.gallery.GalleryZoom}: java.lang.NullPointerException
07-20 00:15:12.789: E/AndroidRuntime(802):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
07-20 00:15:12.789: E/AndroidRuntime(802):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
07-20 00:15:12.789: E/AndroidRuntime(802):  at android.app.ActivityThread.access$600(ActivityThread.java:130)
07-20 00:15:12.789: E/AndroidRuntime(802):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
07-20 00:15:12.789: E/AndroidRuntime(802):  at android.os.Handler.dispatchMessage(Handler.java:99)
07-20 00:15:12.789: E/AndroidRuntime(802):  at android.os.Looper.loop(Looper.java:137)
07-20 00:15:12.789: E/AndroidRuntime(802):  at android.app.ActivityThread.main(ActivityThread.java:4745)
07-20 00:15:12.789: E/AndroidRuntime(802):  at java.lang.reflect.Method.invokeNative(Native Method)
07-20 00:15:12.789: E/AndroidRuntime(802):  at java.lang.reflect.Method.invoke(Method.java:511)
07-20 00:15:12.789: E/AndroidRuntime(802):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
07-20 00:15:12.789: E/AndroidRuntime(802):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
07-20 00:15:12.789: E/AndroidRuntime(802):  at dalvik.system.NativeStart.main(Native Method)
07-20 00:15:12.789: E/AndroidRuntime(802): Caused by: java.lang.NullPointerException
07-20 00:15:12.789: E/AndroidRuntime(802):  at com.example.example.mobile.application.gallery.GalleryZoom.LoadImage(GalleryZoom.java:52)
07-20 00:15:12.789: E/AndroidRuntime(802):  at com.example.example.mobile.application.gallery.GalleryZoom.onCreate(GalleryZoom.java:41)
07-20 00:15:12.789: E/AndroidRuntime(802):  at android.app.Activity.performCreate(Activity.java:5008)
07-20 00:15:12.789: E/AndroidRuntime(802):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
07-20 00:15:12.789: E/AndroidRuntime(802):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
07-20 00:15:12.789: E/AndroidRuntime(802):  ... 11 more

任何帮助将不胜感激 :) 而且,这在 2.3.3 的模拟器上运行良好,但在最新的 4.1 上运行时,我似乎得到了这个错误。

4

1 回答 1

0

您可能在这一行有一个 nullpointerexception:

in.close();

您的流似乎是null(错误的 url,没有连接,或者像这样的 sthg)。

尝试这个:

    InputStream in = null;
    try {
        in = OpenHttpConnection(URL);
        bitmap = BitmapFactory.decodeStream(in, null, options);

    } catch (IOException e1) {
    }
    finally{
        try{
            in.close();
        }catch(Exception e){}
    }
    return bitmap;
于 2012-08-07T08:18:52.087 回答