2017-07-04 1 views
0

J'essaie de travailler avec l'API Camera2 sur l'émulateur, mais j'ai malheureusement rencontré un problème lors de son implémentation.L'API Camera2 ne fonctionne pas sur emualtor

J'utilise le Camera2Basic fourni par google de ce link et je l'ai essayé sur le vrai appareil et ça marche bien.

appareils réels sont: Huawei P9 API Lite 24, API Samsung Galaxy S5 23.

Genymotion émulateurs sont: Google Nexus 4,5,6 API 21,22,24, Samsung Galaxy S6, Le problème maintenant est lors du lancement de l'application sur l'émulateur, il montre la caméra (je travaille avec une webcam), mais quand je clique sur l'image du bouton normalement, il montre sur un toast que l'image est enregistré dans un certain chemin. Mais ce n'est pas le cas, cela signifie que l'image n'a pas été prise, elle ne le fait que sur de vrais appareils.

J'ai remarqué pendant la construction du projet, le logcat montre ceci:

07-04 07:56:06.252 1694-1694/? E/memtrack: Couldn't load memtrack module (No 
such file or directory) 
07-04 07:56:06.252 1694-1694/? E/android.os.Debug: failed to load memtrack 
module: -2 
07-04 07:56:07.360 1709-1709/? E/memtrack: Couldn't load memtrack module (No 
such file or directory) 
07-04 07:56:07.360 1709-1709/? E/android.os.Debug: failed to load memtrack 
module: -2 
07-04 07:56:34.492 1723-1723/? E/memtrack: Couldn't load memtrack module (No 
such file or directory) 
07-04 07:56:34.492 1723-1723/? E/android.os.Debug: failed to load memtrack 
module: -2 
07-04 07:56:35.220 1816-1816/? E/cutils-trace: Error opening trace file: 
Permission denied (13) 
07-04 07:56:37.443 1863-1863/? E/memtrack: Couldn't load memtrack module (No 
such file or directory) 
07-04 07:56:37.444 1863-1863/? E/android.os.Debug: failed to load memtrack 
module: -2 
07-04 07:56:38.734 1872-1909/com.example.android.camera2basic E/libEGL: 
load_driver(/system/lib/egl/libGLES_emulation.so): dlopen failed: library 
"/system/lib/egl/libGLES_emulation.so" not found 
07-04 07:56:39.621 1872-1909/com.example.android.camera2basic 
E/EGL_emulation: tid 1909: eglSurfaceAttrib(1174): error 0x3009 
(EGL_BAD_MATCH) 
07-04 07:56:40.775 635-727/system_process E/TaskPersister: File error 
accessing recents directory (directory doesn't exist?). 
07-04 07:56:44.003 1935-1981/com.android.packageinstaller E/libEGL: 
load_driver(/system/lib/egl/libGLES_emulation.so): dlopen failed: library 
"/system/lib/egl/libGLES_emulation.so" not found 
07-04 07:56:44.597 1935-1981/com.android.packageinstaller E/EGL_emulation: 
tid 1981: eglSurfaceAttrib(1174): error 0x3009 (EGL_BAD_MATCH) 

Mais quand je clique sur le bouton image il ne montre rien sur le logcat. Ce fichier est le AndroidManifest.xml:

<?xml version="1.0" encoding="UTF-8"?> 

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.android.camera2basic"> 

<uses-permission android:name="android.permission.CAMERA" /> 

<uses-feature android:name="android.hardware.camera" /> 
<uses-feature android:name="android.hardware.camera.autofocus" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

<application android:allowBackup="true" 
    android:label="@string/app_name" 
    android:icon="@drawable/ic_launcher" 
    android:theme="@style/MaterialTheme"> 

    <activity android:name=".CameraActivity" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

j'ai vu de nombreuses questions avec le « Impossible de charger le module memtrack (Pas fichier ou répertoire) », mais je ne pouvais pas vraiment raconter pour eux. Quelqu'un peut-il aider? Merci d'avance.

P.S: Pour que l'API Camera2 fonctionne sur l'émulateur est un must pour mon projet, c'est pourquoi je pose cette question. Merci de votre compréhension

Répondre

0

L'avez-vous essayé dans l'émulateur Android Studio? Est-ce que ça marche là-bas?

Il peut s'agir d'un bogue spécifique à l'émulateur Genymotion ou partagé entre plusieurs émulateurs.