Using Ionic 1.0.0 beta-8
After creating a new app, I built and deployed it to a Nexus 5 emulator and it worked fine. But when I tried to debug it on my Android 2.2 phone, I got this error:
....
-post-build:
[move] Moving 1 file to /home/admin/code/projects/myapp/ionic/platforms/android/ant-build
[move] Moving 1 file to /home/admin/code/projects/myapp/ionic/platforms/android/CordovaLib/ant-build
debug:
BUILD SUCCESSFUL
Total time: 6 seconds
WARNING : No target specified, deploying to device 'I8972b56ddac'.
Using apk: /home/admin/code/projects/myapp/ionic/platforms/android/ant-build/HelloCordova-debug-unaligned.apk
Installing app on device...
/home/admin/code/projects/myapp/ionic/platforms/android/cordova/node_modules/q/q.js:126
throw e;
^
ERROR: Failed to launch application on device: ERROR: Failed to install apk to device: pkg: /data/local/tmp/HelloCordova-debug-unaligned.apk
Failure [INSTALL_FAILED_OLDER_SDK]
Error: /home/admin/code/projects/myapp/ionic/platforms/android/cordova/run: Command failed with exit code 8
at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:131:23)
at ChildProcess.emit (events.js:98:17)
at maybeClose (child_process.js:755:16)
at Process.ChildProcess._handle.onexit (child_process.js:822:5)
ERROR: Unable to run app on platform android. Please see console for more info.
Exiting.
How do I make the build work in ionic/cordova for android 4.x.x phones as well as android 2.2 phones?
this question is similar to yours. stackoverflow
go to your AndroidManifest.xml, find these to control your sdk buildversion.
*targetSdk = tell phonegap which android build version to use,
*MinSdk is to limit user who want to download it.
check the API LEVEL of android build here.
In Your case: for android 2.2, use value= 8(API level 8)
NOTE: I doubt android 2.2(API level 8) can run API level 17(android 4.2).
It would appear that cdvCompileSdkVersion is used to determine build SDK and NOT targetSdkVersion as one would use in native android apps.
Change value of
"android-minSdkVersion"
inconfig.xml
of your ionic project. It should look like below:According to Ionic Platform notes, Ionic targets iPhone and Android devices (currently). It also support iOS 6+, and Android 4.0+ (though 2.3 should work). However, since there are a lot of different Android devices, it's possible certain ones might not work. Ionic did not guaranty for Android 2.3 hence Android 2.2 will be out of scope.
Hence, I think that is the reason why you are having challenges.
FYI, Google back-ported features from Honeycomb and again from later versions of Android into a "compatibility" library. You might be able to install that and get your app working on older versions of Android. You would need to update your Android SDK and install this library.
See Android Support Library docs.
If you're using Ionic, you could add a hook script that copies the library into your project when you add Android as a platform or start a build.