Hi,
I am tring to build a sample application using QCAR. I did the example same like FrameMarkers example.
When I export it as Android Applicaiton I am getting "Cound Not find method android.hardware.Camera.getNumberOfCameras".
But when I build the sampe FrameMarkers example I am not getting this error.
It seems everyting is ok to me.
Does am I missing any settings?
I added QCAR.jar as referenced library from my project properties (Properties -> JavaBuildPath -> AddJars-)
I added the camera permissons to the manifest file also as follows
<uses-feature android:name="android.hardware.camera" /> <!-- Add this permission to get access to the camera --> <uses-permission android:name="android.permission.CAMERA" />
Here is the log cat
11-06 16:35:13.227: D/dalvikvm(9193): Trying to load lib /data/data/com.Trikona.AR.education/lib/libQCAR.so 0x480b5f3011-06 16:35:13.227: D/dalvikvm(9193): Added shared lib /data/data/com.Trikona.AR.education/lib/libQCAR.so 0x480b5f3011-06 16:35:13.231: I/dalvikvm(9193): Could not find method android.hardware.Camera.getNumberOfCameras, referenced from method com.qualcomm.ar.pl.CameraPreview.getCameraDeviceIndex11-06 16:35:13.231: W/dalvikvm(9193): VFY: unable to resolve static method 251: Landroid/hardware/Camera;.getNumberOfCameras ()I11-06 16:35:13.231: D/dalvikvm(9193): VFY: replacing opcode 0x71 at 0x001911-06 16:35:13.231: D/dalvikvm(9193): VFY: dead code 0x001c-0034 in Lcom/qualcomm/ar/pl/CameraPreview;.getCameraDeviceIndex (III)I11-06 16:35:13.231: D/dalvikvm(9193): VFY: dead code 0x0037-003e in Lcom/qualcomm/ar/pl/CameraPreview;.getCameraDeviceIndex (III)I11-06 16:35:13.239: E/dalvikvm(9193): Could not find class 'android.hardware.Camera$CameraInfo', referenced from method com.qualcomm.ar.pl.CameraPreview.getDirection11-06 16:35:13.239: W/dalvikvm(9193): VFY: unable to resolve new-instance 51 (Landroid/hardware/Camera$CameraInfo;) in Lcom/qualcomm/ar/pl/CameraPreview;11-06 16:35:13.239: D/dalvikvm(9193): VFY: replacing opcode 0x22 at 0x001711-06 16:35:13.239: D/dalvikvm(9193): VFY: dead code 0x0019-0032 in Lcom/qualcomm/ar/pl/CameraPreview;.getDirection (I)I11-06 16:35:13.239: I/dalvikvm(9193): Could not find method android.hardware.Camera.getNumberOfCameras, referenced from method com.qualcomm.ar.pl.CameraPreview.getNumberOfCameras11-06 16:35:13.239: W/dalvikvm(9193): VFY: unable to resolve static method 251: Landroid/hardware/Camera;.getNumberOfCameras ()I11-06 16:35:13.239: D/dalvikvm(9193): VFY: replacing opcode 0x71 at 0x001411-06 16:35:13.239: D/dalvikvm(9193): VFY: dead code 0x0017-0018 in Lcom/qualcomm/ar/pl/CameraPreview;.getNumberOfCameras ()I11-06 16:35:13.239: I/dalvikvm(9193): Could not find method android.hardware.Camera$Parameters.getFocusDistances, referenced from method com.qualcomm.ar.pl.CameraPreview.getTypedCameraParameter11-06 16:35:13.243: W/dalvikvm(9193): VFY: unable to resolve virtual method 225: Landroid/hardware/Camera$Parameters;.getFocusDistances ([F)V11-06 16:35:13.243: D/dalvikvm(9193): VFY: replacing opcode 0x6e at 0x00e811-06 16:35:13.243: D/dalvikvm(9193): VFY: dead code 0x00eb-00fb in Lcom/qualcomm/ar/pl/CameraPreview;.getTypedCameraParameter (II)Ljava/lang/Object;11-06 16:35:13.243: I/dalvikvm(9193): Could not find method android.hardware.Camera.open, referenced from method com.qualcomm.ar.pl.CameraPreview.open11-06 16:35:13.250: W/dalvikvm(9193): VFY: unable to resolve static method 254: Landroid/hardware/Camera;.open (I)Landroid/hardware/Camera;11-06 16:35:13.250: D/dalvikvm(9193): VFY: replacing opcode 0x77 at 0x00aa11-06 16:35:13.250: D/dalvikvm(9193): VFY: dead code 0x00ad-00b1 in Lcom/qualcomm/ar/pl/CameraPreview;.open (IIILjava/lang/String;[I[I)I11-06 16:35:13.254: D/dalvikvm(9193): DexOpt: couldn't find field Landroid/content/pm/ApplicationInfo;.nativeLibraryDir11-06 16:35:13.254: W/dalvikvm(9193): VFY: unable to resolve instance field 1611-06 16:35:13.258: D/dalvikvm(9193): VFY: replacing opcode 0x54 at 0x001611-06 16:35:13.258: D/dalvikvm(9193): VFY: dead code 0x0018-003f in Lcom/qualcomm/ar/pl/SystemTools;.getNativeLibraryPath (Landroid/app/Activity;)Ljava/lang/String;11-06 16:35:13.270: D/dalvikvm(9193): Trying to load lib /data/data/com.Trikona.AR.education/lib/libTrikonaQCAREdu.so 0x480b5f3011-06 16:35:13.270: D/dalvikvm(9193): Added shared lib /data/data/com.Trikona.AR.education/lib/libTrikonaQCAREdu.so 0x480b5f3011-06 16:35:13.270: D/dalvikvm(9193): No JNI_OnLoad found in /data/data/com.Trikona.AR.education/lib/libTrikonaQCAREdu.so 0x480b5f30, skipping init11-06 16:35:13.274: D/DEBUG---(9193): FrameMarkers::onCreate11-06 16:35:13.348: D/DEBUG---(9193): FrameMarkers::onResume11-06 16:35:13.356: D/DEBUG--(9193): FrameMarkers::onPause11-06 16:35:13.360: D/DEBUG---(9193): FrameMarkers::onDestroy11-06 16:35:13.360: D/QCAR(9193): Java_com_qualcomm_QCARSamples_FrameMarkers_FrameMarkers_deinitApplicationNative11-06 16:35:13.360: D/QCAR(9193): Java_com_qualcomm_QCARSamples_FrameMarkers_FrameMarkers_deinitTracker11-06 16:35:13.360: E/AR(9193): Failed to register callback because the given camera is invalid.11-06 16:35:13.481: D/dalvikvm(9193): GC_EXPLICIT freed 1206 objects / 83712 bytes in 119ms11-06 16:35:13.485: D/DEBUG---(9193): FrameMarkers::onCreate11-06 16:35:13.500: D/DEBUG---(9193): FrameMarkers::onResume11-06 16:35:13.504: D/skia(9193): purging 6K from font cache [1 entries]11-06 16:35:13.504: D/SKIA_FONT(9193): stored typeface in slot 011-06 16:35:13.504: D/SKIA_FONT(9193): SKIA_FONT fontfile: /data/data/com.android.settings/app_fonts/default/DroidSans.ttf11-06 16:35:13.516: D/SKIA_FONT(9193): SKIA_FONT fontfile: /data/data/com.android.settings/app_fonts/default/DroidSans.ttf11-06 16:35:13.516: D/SKIA_FONT(9193): load_system_fonts(), name = Droid Sans, style = 0, uniqueID = 1311-06 16:35:13.516: D/SKIA_FONT(9193): SKIA_FONT fontfile: /data/data/com.android.settings/app_fonts/default/DroidSans-Bold.ttf11-06 16:35:13.520: D/SKIA_FONT(9193): SKIA_FONT fontfile: /data/data/com.android.settings/app_fonts/default/DroidSans-Bold.ttf11-06 16:35:13.520: D/SKIA_FONT(9193): load_system_fonts(), name = Droid Sans, style = 1, uniqueID = 1411-06 16:35:13.539: D/SKIA_FONT(9193): load_system_fonts(), name = Droid Serif, style = 0, uniqueID = 1511-06 16:35:13.563: D/SKIA_FONT(9193): load_system_fonts(), name = Droid Serif, style = 1, uniqueID = 1611-06 16:35:13.578: D/SKIA_FONT(9193): load_system_fonts(), name = Droid Serif, style = 2, uniqueID = 1711-06 16:35:13.590: D/SKIA_FONT(9193): load_system_fonts(), name = Droid Serif, style = 3, uniqueID = 1811-06 16:35:13.610: D/SKIA_FONT(9193): load_system_fonts(), name = Droid Sans Mono, style = 0, uniqueID = 1911-06 16:35:13.610: D/SKIA_FONT(9193): load_system_fonts(), name = Droid Sans Arabic, style = 0, uniqueID = 2011-06 16:35:13.610: D/SKIA_FONT(9193): load_system_fonts(), name = Droid Sans Hebrew, style = 0, uniqueID = 2111-06 16:35:13.610: D/SKIA_FONT(9193): load_system_fonts(), name = Droid Sans Thai, style = 0, uniqueID = 2211-06 16:35:13.614: D/SKIA_FONT(9193): load_system_fonts(), name = Droid Sans, style = 0, uniqueID = 2311-06 16:35:13.621: D/SKIA_FONT(9193): load_system_fonts(), name = Droid Sans Fallback, style = 0, uniqueID = 2411-06 16:35:13.621: D/SKIA_FONT(9193): load_system_fonts(), oldSansUID = 1, newSansUID = 1311-06 16:35:13.621: D/SKIA_FONT(9193): load_system_fonts(), oldSansBoldUID = 2, newSansBoldUID = 1411-06 16:35:14.489: I/AR(9193): QCAR has been initialized successfully11-06 16:35:14.489: I/AR(9193): QCAR SDK version 1.5.911-06 16:35:14.493: I/AR(9193): QCAR has already been initialized11-06 16:35:14.493: I/AR(9193): QCAR SDK version 1.5.911-06 16:35:14.707: D/InitQCARTask::onPostExecute: QCAR initialization(9193): successful11-06 16:35:14.707: D/QCAR(9193): Java_com_qualcomm_QCARSamples_FrameMarkers_FrameMarkers_initTracker11-06 16:35:14.707: D/QCAR(9193): Successfully initialized MarkerTracker.11-06 16:35:14.707: I/AR(9193): Creating FrameID marker detector11-06 16:35:14.707: D/QCAR(9193): Successfully created frame markers.11-06 16:35:14.735: D/dalvikvm(9193): GC_EXPLICIT freed 481 objects / 28000 bytes in 20ms11-06 16:35:15.497: D/QCAR(9193): Java_com_qualcomm_QCARSamples_FrameMarkers_FrameMarkers_startCamera11-06 16:35:15.653: D/dalvikvm(9193): GC_EXPLICIT freed 1721 objects / 101144 bytes in 24ms11-06 16:35:17.129: I/AR(9193): Setting the torch mode not supported11-06 16:35:17.129: D/QCAR(9193): Java_com_qualcomm_QCARSamples_FrameMarkers_FrameMarkers_setProjectionMatrix11-06 16:35:17.250: D/libEGL(9193): loaded /system/lib/egl/libEGL_POWERVR_SGX540_120.so11-06 16:35:17.262: D/libEGL(9193): loaded /system/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so11-06 16:35:17.270: D/libEGL(9193): loaded /system/lib/egl/libGLESv2_POWERVR_SGX540_120.so11-06 16:35:17.399: D/DEBUG---(9193): OnSurfaceCreated11-06 16:35:17.399: D/QCAR(9193): Java_com_qualcomm_QCARSamples_FrameMarkers_FrameMarkersRenderer_initRendering11-06 16:35:17.399: D/MAIN_Render(9193): In onSurfaceChanged11-06 16:35:17.399: D/QCAR(9193): Java_com_qualcomm_QCARSamples_FrameMarkers_FrameMarkersRenderer_updateRendering11-06 16:35:17.399: D/QCAR(9193): Configure Video Background : Video (320,240), Screen (800,404), mSize (800,600)11-06 16:35:17.399: D/QCAR(9193): Rendering ---------------
Could not find method android.hardware.Camera.getNumberOfCameras
Hi,
have you added all of the following permissions (not just the camera one):
Could not find method android.hardware.Camera.getNumberOfCameras
Hi ,
Thank you very much for the help.
I did not observed till now that the same error is coming for "FrameMarkers" sample also.
I did another example exactly as FrameMarkers except that the package and file names are different.
Could not find method android.hardware.Camera.getNumberOfCameras
As you say, you changed the package name and some file names;
Could not find method android.hardware.Camera.getNumberOfCameras
Hi,
Thank you for the nice help.
I already implemented that, if not I will get like "xyz function implementation is not found" error.
Could not find method android.hardware.Camera.getNumberOfCameras
Hi, if you setup correctly JNI (as you say),
then the problem must be with the fact that getNumberOfCameras() function belongs to API level 9, i.e. Android 2.3,
while your device is on Android 2.2, so it does not support that functions;