リモートでホストされているビデオ ファイルを表示する次のコードがあります。
startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse(article.getLink())));
wheregetLink()
は、記事に関連付けられたビデオの URL を返します。
このアプローチは Gingerbread までのデバイスでは問題なく動作しましたが、最近 ICS でアプリをテストしたところ、問題が見つかりました。ICS ブラウザーが URL の読み込みを開始し、ナビゲーション バーに表示されますが、すぐにブラウザーが閉じて、アプリのアクティビティに戻ります。
発生すると、次のスタック トレースが表示されます。
11-28 10:24:44.488: E/SurfaceTexture(116): [com.mypackage.myapp/com.mypackage.myapp.MyVideoActivity] connect: already connected (cur=2, req=2)
11-28 10:24:44.488: E/ViewRootImpl(25384): IllegalArgumentException locking surface
11-28 10:24:44.488: E/ViewRootImpl(25384): java.lang.IllegalArgumentException
11-28 10:24:44.488: E/ViewRootImpl(25384): at android.view.Surface.lockCanvasNative(Native Method)
11-28 10:24:44.488: E/ViewRootImpl(25384): at android.view.Surface.lockCanvas(Surface.java:76)
11-28 10:24:44.488: E/ViewRootImpl(25384): at android.view.ViewRootImpl.draw(ViewRootImpl.java:1924)
11-28 10:24:44.488: E/ViewRootImpl(25384): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1613)
11-28 10:24:44.488: E/ViewRootImpl(25384): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2418)
11-28 10:24:44.488: E/ViewRootImpl(25384): at android.os.Handler.dispatchMessage(Handler.java:99)
11-28 10:24:44.488: E/ViewRootImpl(25384): at android.os.Looper.loop(Looper.java:137)
11-28 10:24:44.488: E/ViewRootImpl(25384): at android.app.ActivityThread.main(ActivityThread.java:4340)
11-28 10:24:44.488: E/ViewRootImpl(25384): at java.lang.reflect.Method.invokeNative(Native Method)
11-28 10:24:44.488: E/ViewRootImpl(25384): at java.lang.reflect.Method.invoke(Method.java:511)
11-28 10:24:44.488: E/ViewRootImpl(25384): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-28 10:24:44.488: E/ViewRootImpl(25384): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-28 10:24:44.488: E/ViewRootImpl(25384): at dalvik.system.NativeStart.main(Native Method)
他の誰かがこの動作を見たことがありますか / 修正を知っていますか?