我正在尝试在模拟器上使用Camera2 API但不幸的是我在实现它时遇到了问题。
我正在使用谷歌从这个link提供的 Camera2Basic ,我在真实设备上尝试了它,它运行正常。
真正的设备是:华为P9 Lite API 24,三星Galaxy S5 API 23.
Genymotion仿真器是: Google Nexus 4,5,6 API 21,22,24,三星Galaxy S6,S7 API 23,25
现在的问题是,在模拟器上启动应用程序时,它会显示相机(我正在使用网络摄像头),但是当我点击按钮图片时,它会在烤面包上显示图片保存在某个路径中。但它没有,这意味着图片没有拍摄,只能在真实设备上拍摄。
我在构建项目时注意到logcat显示了这个:
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)
但是当我点击按钮图片时,它在logcat上什么都没显示。这是 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>
我看到许多问题“无法加载memtrack模块(No 这样的文件或目录)“但我无法真正与他们联系。任何人都可以帮忙吗?提前谢谢你。
P.S:使Camera2 API在模拟器上运行是我项目必须的,这就是我问这个的原因。感谢您的理解
答案 0 :(得分:0)
您是否在Android Studio模拟器中尝试过?它在那里有用吗?
这可能是Genymotion模拟器特有的错误,也可能在多个模拟器之间共享。