I am trying to run some OpenCV examples on an MDP (mobile development platform) based on the Qualcomm® Snapdragon™ 805 Processor. The platform has no Google Play and it cannot be installed.
I have installed the correct OpenCV manager and the OpenCV binary pack. After trying to run a sample OpenCV app (e.g. the 15 puzzle) I get the following message:
"OpenCV library package was not found! Try to install it?"
Of course, I cannot install it, since there is no Google Play Store. How can I get the OpenCV library package onto the device and am I wrong to think that the OpenCV binary pack is exactly that?
Related
I have downloaded the ar foundation app from a course regarding AR Foundation on Coursera. https://www.coursera.org/learn/handheld-ar/
I have successfully run the app on my phone but my phone does not support ARCore, so I went for the emulator. I followed all the instructions on the ARCore Website. But When I install the apk from the unity project and drag-drop on the emulator it gives me String Parse Error
logcat shows:
failed to install my_arr_app.apk: Failure
[INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries,
res=-113]
Can anyone help how to resolve it or how to test my apps to complete the course successfully? Please guide!
Thank you in advance
See the other answer for the solution
The app is using native libraries compiled for a specific platform. There are multiple different platform types that android supports (armeabi, x86, x86_64, etc.). Depending on the emulator image you are using the app might not include the binaries for your emulator.
You can open the APK in Android Studio (or extract it as a zip) and have a look into the lib folder in the APK. Each subfolder is an architecture name.
Then you can create a new Emulator in the AVD manager and when choosing the system image, select "Other images" and choose one with an ABI which is included in the app.
Example:
The answers from the following question also might provide some detail: INSTALL_FAILED_NO_MATCHING_ABIS when install apk
By the help of #JensV I managed to solve it by choosing the x86 instead of ARMv7.
Go to Edit->ProjectSetting->Player->Configuration->Select x86
I am trying to run cardboard example on my android device
https://play.google.com/store/apps/details?id=com.google.samples.apps.cardboarddemo&hl=en
Giving me error "This app is incompatible with all of your devices."
also I have tried to download the example from this link
https://developers.google.com/cardboard/android/get-started
and I am getting the following error
trouble writing output: already prepared
The library 'cardboard.jar' contains native libraries that will not run on the device.
Additionally some of those libraries will interfer with the installation of the application because of their location in lib/
lib/ is reserved for NDK libraries.
The following libraries were found:
- lib/armeabi-v7a/libvrtoolkit.so
My device is LG D686
with android version 4.4.2
can anyone tell me what is the problem
To convert a native Android .apk to a Blackberry .bar does not seem to be a problem.
However, I have an Android .apk (API 15) that I implemented using Xamarin. I am able to convert the file to a .bar file using the BB10 Sideloading Tool, but when I run the app on the Blackberry simulator, I get the error messages:
android_update_LD_LIBRARY_PATH not found; .so dependencies will not work
and later
FATAL EXCEPTION: main java.lang.UnsatisfiedLinkError: Library cannot be found at java.lang.Runtime.loadLibrary(Runtime.java:361)
etc...
I am not really sure what steps can fix this errors.
Is it basically possible to run Xamarin-created .apk-files on Blackberry?
Would it maybe help to turn on the switch "Bundle assemblies into native code" in the Android Build options? For this, I would have to upgrade to Enterprise, but if it helps...
Correct me if I'm wrong, but I'm pretty sure Xamarin works with building your code as a native (as in NDK) library for Android, and a small Java glue to load and run the code from this library.
Two things to note here: the simulator runs a x86 instruction set, when your library is probably built for ARM. Won't work.
For a real device, you'll have to check that every library needed by yours is present on a BB10 device, which is not guaranteed as far as I understand: http://developer.blackberry.com/android/apisupport/android_native_support.html
There are numerous questions like this around here, the Qt sites and the OpenCV sites, but none of them quite match my case. (And a lot are unanswered anyway.)
I'm using OpenCV for Android 2.4.6 (the prebuilt version downloadable from the official site)
to build a native App for Android (4.1.2) on a Samsung Galaxy Note 2 with Qt 5.0.1 for Android
(using QtCreator 2.7.2) on a x86_64 Linux host.
I've linked against the libraries in the ../sdk/native/libs/armeabi-v7a folder. (I haven't built OpenCV from source, I'm just using what was in the downloaded package). This includes a libopencv_androidcam.a library. (And I've also tried the libnative_camera_r4.1.1.so shared lib.)
I've also downloaded the market app "OpenCV Manager".
The sample .apks from the samples directory work on my phone, but I haven't tried to build them on my own, as I don't have a Java development environment set up.
Starting my application, which contains a cv::VideoCapture inputCapture(CV_CAM_ANDROID); statement, I get the following error and no camera input:
E/OpenCV::camera(15299): CameraWrapperConnector::connectToLib ERROR: cannot dlopen camera wrapper library
E/OpenCV::camera(15299): Native_camera returned opening error: 4
My questions:
Should this work? I have seen a lot
of bug reports, but all with older
OpenCV versions and newer/older
Android versions. Bonus points if it
has been seen working on this phone
model.
Should this work out of the box with the downloaded OpenCV Android SDK? Or do I need to build OpenCV from source with some special options? (Which ones?)
Do I need special library versions on the phone itself? Do I need to have root access to the device to make this work?
Are there any "known to be working" Andoid examples using native code instead of Java?
Thanks a lot for any help!
I'll repeat the answer I got from user #Moster at http://answers.opencv.org here:
Copy libnative_camera_r4.1.1.so from the folder
/sdk/native/libs/armeabi-v7a to your Qt project's folder
/android/libs/armeabi-v7a. Make sure you have also allowed the camera
in the android_manifest in the Qt creator. Maybe all this helps
This indeed works. While I already mentioned the camera permissions in the Manifest.xml (or rather the Qt project settings), copying the shared lib to the project directory did the trick.
Seems like it's found and linked during build, but not copied to the device from its original location.
Neither the "Copy local Qt libs to device" in the deploy settings (Qt libs only?) nor the OpenCV Manager App (only loads the right libs when called directly from the Java code?) helped before.
I am making an application i need to integration canon camera through Android device for i got sdk from canon provided for windows.. in which there are 3 headers files and EDSDK.lib and some Dll files . I am using android NDK for integrating c files in android Applications.
Please help..
Thanks
You really are not going to be able to use the Windows SDK for Android.
You will either have to find an Android SDK, build it yourself [ assuming the source of the SDK is available ], or reverse engineer the protocol.