How to set up the FMOD audio library in Qt Creator for Android
-
@JoeCFD said in How to set up the FMOD audio library in Qt Creator for Android:
How do I view the contents of an APK file?
You can download it here: https://www.dropbox.com/scl/fi/m7hk76cia49451mhsoiny/android-build-with-fmod-for-forums.apk?rlkey=h2cnav1e6bl7s3ixidqi4nnsf&dl=1
Could you try to run it on your smartphone?
-
@JoeCFD said in How to set up the FMOD audio library in Qt Creator for Android:
Try the latest Qt6 if you prefer Qt6. Qt-6.2 is new in Qt 6.
Sorry. I forgot to write what I use. I use: FMODE 2.02.16 API version, JDK 17, NDK 22, Qt 6.2.4, and Redmi 4x (Android 7)
-
@JoeCFD said in How to set up the FMOD audio library in Qt Creator for Android:
Open or list your apk file to make sure these libs are added in.
Yes,
libfmod.so
is there. But How to make sure that the path is corrent? -
@8Observer8 they are all together. No path issue here.
-
@JoeCFD said in How to set up the FMOD audio library in Qt Creator for Android:
they are all together. No path issue here.
I mean, maybe Qt try to find it on the wrong path that I wrote in pro-file. I found somewhere that the folder must be named
jniLibs
:contains(ANDROID_TARGET_ARCH, armeabi-v7a) { ANDROID_EXTRA_LIBS += $$PWD/jniLibs/armeabi-v7a/libfmod.so }
-
I tried to use
lib
instead ofjniLibs
but the result is the same.contains(ANDROID_TARGET_ARCH, armeabi-v7a) { ANDROID_EXTRA_LIBS += $$PWD/lib/armeabi-v7a/libfmod.so }
-
@8Observer8 Very few people have phones with Android 7.
-
@JoeCFD said in How to set up the FMOD audio library in Qt Creator for Android:
Very few people have phones with Android 7.
I think the smaller the version, the more you can capture the audience. Let's say if you build for Android 4, then the application will run on Android 4, 5, 6, 7, 8, 9, 10, 11 and so on. But if you build on the latest version of Android, then the audience will be very small.
-
@8Observer8 then you need to add the support up to Android 13. Did you do it? Or you simply made Android 7 support?
my app supports Android 11, 12 and 13.
-
@JoeCFD said in How to set up the FMOD audio library in Qt Creator for Android:
my app supports Android 11, 12 and 13.
I think Android is backward compatible. That is, if I created applications with the selected Android 4, this means that the application will work not only on Android 4, but also on Android 5, 12 and 13.
-
@8Observer8 I guess not. I built my app for Android 11 and 12 at first. And it did not work on Android 13. I had to add 13 support in the build.
-
@JoeCFD My only guess is that an app built for Android 11 doesn't work on Android 13 because it uses APIs that were removed in Android 13, but unless you're using backwards compatibility hacks, then early apps should work on more number of new devices. But this is only my assumption, which I myself have to verify by experience.
-
I currently have an Android 13 smartphone. I tried to run my music application using OpenAL. It works on smartphones with Android 13 and 7. This is very good, because I thought that I would have to make a separate build in the APK for each version of the smartphone, starting from Android 7 to13.
-
@8Observer8 What I did is to add all SDKs of Android 11, 12 and 13 to the project, but I made only one build . My app works fine in 11, 12 and 13.
-
@JoeCFD said in How to set up the FMOD audio library in Qt Creator for Android:
What I did is to add all SDKs of Android 11, 12 and 13 to the project
Last time you wrote that if the application is built for Android 7 and Android 12 SDK, then it will not work on Android 13. Interestingly, I was unable to remove the Android 12 SDK from Qt Creator. Qt Creator says that Android 12 SDK is required:
I don't have the Android 13 SDK installed, but my app works fine on Android 13 and Android 7:
-
My APK file that I asked to try running on Android 13 two weeks ago turned out to work on Android 7 and Android 13. I compiled OpenAL to work with audio for Android 10 (When building OpenAL, I used Android API 29, which is compatible with Android 10). The compiled library works on Android 7 and Android 13. I tested it on real devices. I have the Android 7 and Android 12 SDKs installed in Qt Creator in the SDK manager. Tried to run on Android 7 and Android: OpenAL, Box2D, Bullet Physics and OpenGL ES 2.0. That's all you need to develop 2D and 3D games. Now I'm not interested in wasting time on FMOD. You can read posts from one of the FMOD developers on the official FMOD forum: https://qa.fmod.com/t/qt-application-with-fmod-audio-library-crashes-on-launch-on-android/20561
-
@8Observer8 It is the case of my app which has a lot of third-party libs. I had to add Android 13 SDK to make it run properly. But it is also true that 4 small libs I built with
Android 12 can still be used in Android 13. I guess different apps may require different SDKs. I did not spend a lot of time on it and simply made my app running. -
@JoeCFD said in How to set up the FMOD audio library in Qt Creator for Android:
you need to add the support up to Android 13. Did you do it? Or you simply made Android 7 support?
It's not possible to only support Android 7 as Qt Creator won't let you uninstall the Android 12 SDK. If you try to uninstall the Android 12 SDK, Qt Creator will issue a message and install the Android 12 SDK again. FMOD is built in such a way that it will work on Android 13 as well. My example was very simple. It included only FMOD. I understand you just didn't have the time or desire to run it. But I now have two smartphones with Android 7 and Android 13, and I can test my games on OpenGL ES, OpenAL, Box2D and Bullet Physics. I don't need many libraries. These are enough. Qt already includes support for working with JSON, web sockets, and so on. I like OpenAL a lot more than FMOD. I haven't figured out how to use FMOD, but I don't need to - I don't want to waste time on it. OpenAL-Soft is the best for 3D audio because it's easy to install, free and open source.