你如何构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设工作?

  • 离子获取用户的电话号码
  • 键盘消失时的Android白色背景
  • 无法find“ANDROID_HOME”环境variables
  • 离子:如何在多条线上显示离子项?
  • IONIC框架移动应用性能问题
  • 离子cordovaFileUpload错误:不允许加载本地资源
  • 附加图像文件形成数据 - Cordova / Angular
  • 离子构buildandroid失败 - 执行失败的任务processDebugResources
  • 这个问题与你的相似。 堆栈溢出

    去你的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"/>