I just cloned libhardware from https://android.googlesource.com/platform/hardware/libhardware/
how do I build shared library out of this.
I tried using below command,
ndk-build APP_BUILD_SCRIPT=Android.mk NDK_PROJECT_PATH=.
but i see this message
"Android NDK: WARNING: There are no modules to build in this project!"
Personally, I did not try to build libhardware standalone. I downloaded full AOSP project and build it using official guide. Yes, it will take a lot of time, but finally you get all libraries including libhardware :)
Related
I'm working on a c/c++ cross-platform project, constructed of 2 main libraries (with a few external dependencies: ssl, yajl, fribidi).
The android solution will include Java files and a JNI layer, all bundled in a AAR file (including assets and the native libs).
I managed to build the whole project, but in a very awkward way:
I created a 'hello world' Android app', with native support, from within Android Studio, and added all native dependencies to the CMAkeList.txt. I added my Java code + JNI and managed to create the AAR (only for ARM, for now).
Now I need to separate the build of the different libraries, to their separate projects, respectively: libA, libB and C.aar.
How is it done without the IDE (and via command-line)?
There's the stand-alone NDK, the make_standalone_toolchain.py script, android.toolchain.cmake and other options, but none are documented or up-to-date. Most documentation still talks about the outdated Android.mk methodology.
I'd presume including android.toolchain.cmake in my CMakeList.txt, which will set all needed environment...
I'm using the newest Android Studio 3.0.1 and NDK r16b (installed via SDK Manager)
Alex - thanks, exactly what I was looking for. Just had to add a few flags and a call to make:
> cmake -G "MinGW Makefiles" -DCMAKE_TOOLCHAIN_FILE=%ANDROID_NDK%\build\cmake\android.toolchain.cmake -DANDROID_NATIVE_API_LEVEL=android-19 -DCMAKE_MAKE_PROGRAM=%ANDROID_NDK%\prebuilt\windows-x86_64\bin\make.exe -DCMAKE_BUILD_TYPE=Release -DANDROID_ABI="armeabi-v7a with NEON" ..
> cmake --build .
Android Studio (the standard Android gradle plugin, that is) does not support native-only modules, but you can split your CMake script and work with libA and libB separately. You can run cmake from command line (but better use the version that is shipped with Android SDK).
sdk/cmake/3.6.4111459/bin/cmake -DCMAKE_TOOLCHAIN_FILE=sdk/ndk-bundle/build/cmake/android.toolchain.cmake ...
The easiest way to build the AAR file that includes a compiled Java wrapper and the two native libraries would be with Android Studio, but you can run the gradle task from command line. This is what we typically do on a build server.
I am using this link, the answer by star18bit, to integrate MuPDF with my Android project.
I am able to run the ndk-build that is inside the MuPDF's android folder. But when I copied all MuPDF's files to my own project, and ran ndk-build from my project's jni folder, it gives this error:
make: *** No rule to make target ../jni/fitz/base_context.c', needed by ../jni/fitz/base_context.o'. Stop.
Any help to resolve this would be greatly appreciated!
I am following this link as it is, i.e., using the mupdf version 1.2 and android ndk r8e
I was trying to build this on MAC, but gave up.
Finally I did it on Windows 7, encountered a lot of issues while doing it. So I made a tutorial for it, for other users so that they don't have to go through the pain that I went through!
Here's the link:
http://howtojava.net/tutorials/android/integrate-mupdf-with-android-in-windows-7
I have build HelloWorld example successfully in NDK.
I want to build the libraries re-0.4.2, rim and baresip.
Project structure shown in image
How to build above lib?
thanks in advance.
I have created a project that shows how to cross-compile Baresip
for Android. You can find it here on Github:
https://github.com/alfredh/baresip-android
I have some issues in building ics-openvpn project. When I deploy the app on the device and try to import a .ovpn file, I get cannot find minivpn. I think this error is related to an error during the app building.
I've downloaded android NDK and set the path in Eclipse, downloaded cygwin and launched ./build-native.sh, but it returns me the error
./build-native.sh: line 1: ndk-build: command not found
I've tried to modify the path in the .sh with the path of ndk-build, but I get another error:
NON-CYGWIN COMPATIBLE MAKE PROGRAM.....
Anyone knows what steps I have to follow to properly build the project?
You should not try to build it with the cygwin. There is also a build-native.bat in the project which allows the project to be build with windows. Make sure that you have installed the ndk and ndk-build is in your PATH.
Run build-native.bat
make sure you must have NDK 8b and set the environment variable for the ndk file
How do I install MSVCR90D.DLL? I have a small test DLL(debug mode) that I created a setup project. In my setup project, I included merge modules & policy for vc90_debugcrt_x86.msm, etc. When I install the DLL on my VM, dependency walker still reports that MSVCR90D.DLL cannot be found?
Thanks in advance.
See here.
Preparing a Test Machine To Run a
Debug Executable
Microsoft does not officially support deploying debug runtimes outside of dev/test environments but you can make it work if you need to. Sounds like this is a vanilla test environment installation, though.
Just copy the MSVCR90D.DLL file into the same directory as your own dll. Then both your dll and dependency walker will find the MSVCR90D.DLL file.
You may need a couple of other files like msvcp90d.dll or msvcm90d.dll but dependency walker knows if you need them for your purposes.
MSVCR90D.DLL is the debug version of the Visual Studio Runtime Libraries. Normally, if you're deploying that code, you would build it in Release mode and also provide/install the Visual Studio Runtime Redistributable. As far as I know, the only way to obtain the debug dlls are through a Visual Studio install.
The py2exe utility that converts Python scripts into executable Windows programs seems to have a similar problem here. Maybe the section "Bundling the C runtime DLL" helps you to find the solution.