0

Grafika の ContinuousCaptureActivity を参考に、MediaCodec で動画を録画するデモを実装しました。ほとんどの場合、デモは正常に動作しましたが、戻るキーを押すと GT-I9500 デバイスでクラッシュしました(アクティビティが破棄されたと仮定したため、このクラッシュは検出できませんでした。「adb shell ps」を使用してデモ プロセスの存在を確認しました)。その後、ソース コードを繰り返しチェックしたところ、コードが grafika の ContinuousCaptureActivity とほぼ同じであることがわかりました。そこで、次のことを行いました。

  1. GT-I9500 デバイスに grafika の apk をインストールし、ContinuousCaptureActivity を起動してから、携帯電話の戻るキーを押しましたが、アプリケーションはクラッシュせず、grafika が正常に動作することがわかりました。

  2. コードをもう一度確認しましたが、疑わしいものは何も見つかりませんでした。

  3. 新しい Android プロジェクトを作成し、Grafika から ContinuousCaptureActivity.java と AndroidManifest.xml、activity_continuous_capture.xml などのその他の必要なファイルを新しいプロジェクトにコピーしました。AndroidManifest.xml を変更して、ContinuousCaptureActivity をメイン アクティビティにしました。コードをコンパイルし、APK を GT-I9500 デバイスにインストールしました。同じことが起こりました。戻るキーを押した後、アプリケーションがクラッシュしました!!!

私はこの問題に本当に困惑しています。なぜ grafika は正常に動作したのに、新しいプロジェクトの同じコードがクラッシュしたのですか? とにかく、grafika が正常に動作したため、デモのクラッシュに対する解決策があると思います。誰かアドバイスをくれませんか?

私が提供できる情報は次のとおりです。

  1. アプリケーションをデバッグし、クラッシュの原因となった正確なコードを見つけました。コードはhttps://github.com/google/grafika/blob/master/src/com/android/grafika/gles/EglCore.java#L191です

  2. クラッシュは非常にひどいもので、tombstone ファイルは生成されず、adb ログは制限されていました。

06-15 14:39:33.853 I/ActivityManager( 771): プロセス com.example.grafikaaa (pid 13138) (adj 1) が停止しました。

06-15 14:39:33.853 W/ActivityManager( 771): 強制的に ActivityRecord を削除します{42a876c8 u0 com.example.grafikaaa/.ContinuousCaptureActivity}: アプリが停止し、状態が保存されていません .... ....

06-15 14:39:33.903 D/Zygote (209): プロセス 13138 がシグナルによって終了しました (11)

  1. grafika の GlesInfoActivity で表示される自分のデバイスの情報は次のとおりです。
===== GL Information =====

 vendor    : Qualcomm

 version   : OpenGL ES 3.0 V@45.0 AU@  (CL@4169980)

 renderer  : Adreno (TM) 320

 extensions:

   GL_AMD_compressed_ATC_texture

   GL_AMD_performance_monitor

   GL_AMD_program_binary_Z400

   GL_EXT_color_buffer_float

   GL_EXT_color_buffer_half_float

   GL_EXT_debug_label

   GL_EXT_debug_marker

   GL_EXT_discard_framebuffer

   GL_EXT_disjoint_timer_query

   GL_EXT_robustness

   GL_EXT_sRGB

   GL_EXT_texture_filter_anisotropic

   GL_EXT_texture_format_BGRA8888

   GL_EXT_texture_type_2_10_10_10_REV

   GL_NV_fence

   GL_OES_EGL_image

   GL_OES_EGL_image_external

   GL_OES_compressed_ETC1_RGB8_texture

   GL_OES_depth24

   GL_OES_depth_texture

   GL_OES_depth_texture_cube_map

   GL_OES_element_index_uint

   GL_OES_fbo_render_mipmap

   GL_OES_fragment_precision_high

   GL_OES_get_program_binary

   GL_OES_packed_depth_stencil

   GL_OES_rgb8_rgba8

   GL_OES_standard_derivatives

   GL_OES_texture_3D

   GL_OES_texture_float

   GL_OES_texture_half_float

   GL_OES_texture_half_float_linear

   GL_OES_texture_npot

   GL_OES_vertex_array_object

   GL_OES_vertex_half_float

   GL_OES_vertex_type_10_10_10_2

   GL_QCOM_alpha_test

   GL_QCOM_binning_control

   GL_QCOM_driver_control

   GL_QCOM_extended_get

   GL_QCOM_extended_get2

   GL_QCOM_perfmon_global_mode

   GL_QCOM_tiled_rendering

   GL_QCOM_writeonly_rendering


 ===== EGL Information =====

 vendor    : Android

 version   : 1.4 Android META-EGL

 client API: OpenGL_ES

 extensions:

   EGL_ANDROID_image_native_buffer

   EGL_EXT_create_context_robustness

   EGL_KHR_create_context

   EGL_KHR_fence_sync

   EGL_KHR_gl_renderbuffer_image

   EGL_KHR_gl_texture_2D_image

   EGL_KHR_gl_texture_cubemap_image

   EGL_KHR_image

   EGL_KHR_image_base

   EGL_KHR_lock_surface

   EGL_KHR_wait_sync


 ===== System Information =====

 mfgr      : samsung

 brand     : samsung

 model     : GT-I9500

 release   : 4.3

 build     : JSS15J.I9500ZSUEMJ6
4

0 に答える 0