你如何构build和部署到离子/cordova的老版本的Android

使用Ionic 1.0.0 beta-8

创build一个新的应用程序后,我build立并部署到Nexus 5仿真器,它工作正常。 但是当我试图在我的Android 2.2手机上进行debugging时,出现这个错误:

.... -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. 

我如何使离子/cordova为Android 4.xx手机以及Android 2.2手机的build设工作?

Solutions Collecting From Web of "你如何构build和部署到离子/cordova的老版本的Android"

这个问题与你的相似。 堆栈溢出

去你的AndroidManifest.xml,find这些来控制你的SDK构build版本。

 <preference name="android-minSdkVersion" value="XX"> // value is the API LEVEL <preference name="android-targetSdkVersion" value="XX"> 

* targetSdk =告诉phonegap使用哪个android build版本,
* MinSdk是限制用户谁想要下载它。
在这里检查android build的API LEVEL。

在你的情况:对于android 2.2,使用值= 8(API级别8)

  <preference name="android-minSdkVersion" value="8"> //android 2.2 <preference name="android-targetSdkVersion" value="17"> //android 4.2 

注:我怀疑android 2.2(API级别8)可以运行API级别17(android 4.2)。

据Ionic平台说 ,Ionic的目标是iPhone和Android设备(目前)。 它也支持iOS 6+和Android 4.0+(尽pipe2.3应该可以)。 但是,由于有许多不同的Android设备,因此有些设备可能无法正常工作。 离子不能保证Android 2.3,因此Android 2.2将超出范围。

因此,我认为这就是你有挑战的原因。

仅供参考,Google将Honeycomb的function以及Android的更高版本的function移植到“兼容性”库中。 您可能可以安装该应用程序,并让您的应用程序在旧版Android上运行。 你需要更新你的Android SDK并安装这个库。

请参阅Android支持库文档。

如果您使用的是Ionic,则可以添加一个钩子脚本,将Android作为平台添加或开始构build时,将该库复制到项目中。

更改离子项目config.xml"android-minSdkVersion"值。 它应该如下所示:

 <preference name="android-minSdkVersion" value="14"/>