I created a new project and set the compiler to LLVM GCC 4.2, iOS deployment target to 4.2 but I still can't launch it on an iPhone 3G with 4.2.1 on it. It works fine in the simulator and on an iPhone 4, but when I run it on an iPhone 3G with 4.2.1 it simple "finishes" right after I start it, without any console output.
Does anyone have a clue what's wrong?
These are the valid architectures:
You need to add armv6 architecture to the Valid Architectures.
See this answer:
Can't run app on iPhone 4.2.1 with Xcode 4.3.1 and IOS
Valid Architectures is of no use. You need to change Architectures to armv6 armv7, and Build Active Architectures to NO.
In your project settings,
click on TARGET,
There should be a item called Required device capabilities. set that to armv6
it worked on me
finds the item require the plist and removes the restriction to only ARMv7
Changing the Architectures to armv6 armv7 worked for me, I didn't need the Required Device Capabilities at all.
Related
I just testing qml and want to build small application for my raspberry pi3. For a test I took example and compiled (using kit: Desktop Qt 5.7 GCC 64bit) and this app was working on my 64bit linux machine, but on raspberry not working (getting a lot of errors). So I guess I need compile 32bit version? and if so how can I build 32bit version of this app?
Thank you
Qt Creator is just the IDE. What you need is a Qt version build to crosscompile for the pi3 target architecture. Then you can make a kit with it and compile projects that will run on the pi3. The kit you are currently using is compiled for a different hardware architecture, it couldn't possibly work.
You could also build Qt on the pi3 itself, which will most likely be a lot slower though, and you will have to compile your projects on it as well. I would not recommend that if you have a desktop machine.
Also, the pi3 actually has a 64bit CPU and it is possible to put 64bit linux on it, but I personally don't have the pi3 so I haven't tested it and also I don't seem to find any info on anyone succeeding with a 64bit Qt build, so you may want to do a 32bit build just to be on the safe side.
I'm developing an app for API level 15+ that has some jni code and i'm wondering if there are devices with armeabi ABI (ARMv5) and API level 15+
Can i include only armeabi-v7a and x86 libraries and skip the old armeabi?
Android itself doesn't support ARM versions below ARMv7 from Android 4.4 (API level 19). Since Android 4.0 (API level 15), it doesn't support ARMv5/ARMv6 by default but can be modified to build for those platforms (see https://groups.google.com/d/msg/android-building/Q_gU1zb6DLc/Bq5QryioQ_kJ), and there are custom builds that run on ARMv6. I'm not entirely sure if there are any official, certified compatible devices that run such a combination (Android 4.0-4.3) though - there should at least not be any such certified devices running Android 4.4, since the compatibility definition document strictly requires ARMv7 from that version.
So in practice you should be pretty safe to skip it, but you might exclude some fringe third party ROMs by doing that.
See https://stackoverflow.com/a/28926267/3115956 for a similar answer to a similar question.
Can i include only armeabi-v7a and x86 libraries and skip the old armeabi?
No, iff app is to be used on old cpu based architecture devices.
And Yes, if we are sure that no customer have older than ARM7 cpu based architecture device.
In our case we purchased the Chilkat licence for one year and they happily supported with ARMEABI .SO files. Hence it is upto the use case. It is affordable for and organisation.
Also wants to share the contact point for Chilkat if anyone wants to contact them for help. Email them at -> support#chilkatsoft.com
Thank you and Happy coding!!!
I've got one old ipod touch 2g which can be upgraded just to 4.2.1.
I also have xcode 4.5 which says:
Unsupported device Devices of type “iPod touch (2nd generation)” are
not supported by this version of Xcode.
Is there any way I can develop for this poor old device on my current version of xcode?
Thanks.
Go to your targets > summary > deployment target and set it to 4.3 or greater.
Go Here for earlier
Here is the situation: I've built a native library for re-distribution in other apps. Because we're using ARMv7 NEON, we ship two versions of the library: One for most devices and a "fallback" limited capability version for ARMv5/ARMv6. So far so good and this has worked well.
However, for some reason a newly created app running on a Nexus S with Android 4.0.3 is picking up the wrong (armeabi rather than armeabi-v7a) version of the library.
If we dig into the device filesystem, we find that /data/app/my_app.apk contains the correct versions of the library. However, when Android extracts it to /data/data/my_app, we find that /data/data/my_app/lib/my_lib.so is the armeabi version. But, strangely, /data/data/my_other_app/lib/my_lib.so is the correct armeabi-v7a version.
So the questions are:
1) WTF??
2) How does Android decide which eabi to extract from the APK?
Yes, this is known bug in ICS - it chooses wrong library.
Read about it here:
http://www.moodstocks.com/2012/03/20/ice-cream-sandwich-why-native-code-support-sucks/
https://groups.google.com/d/msg/android-ndk/N8FLjvM81pg/2rYeClQZcckJ
I have 3rd party static library compiled for i386 and armv7 architectures (without armv6). Is there a way to link Monotouch project with armv7 library? Monotouch adds '-arch armv6' parameter to gcc and I don't know how to change it.
The current release of monotouch supports all existing iPhones and thus compiles for armv6 since it runs everywhere.
The next major release will support targeting armv7 specific binaries.