使用Ionic 1.0.0 beta-8
创建新应用后,我构建并将其部署到Nexus 5模拟器,它运行良好。但是当我尝试在我的Android 2.2手机上调试它时,我收到了这个错误:
....
-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.
如何让android 4.x.x手机以及Android 2.2手机的ionic / cordova中的构建工作?
答案 0 :(得分:15)
这个问题与你的问题类似。 stackoverflow
转到AndroidManifest.xml,找到这些来控制你的sdk buildversion。
<preference name="android-minSdkVersion" value="XX"> // value is the API LEVEL
<preference name="android-targetSdkVersion" value="XX">
* targetSdk =告诉phonegap使用哪个android构建版本,
* MinSdk是限制想要下载它的用户。
检查android build here的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)。
答案 1 :(得分:1)
根据Ionic Platform notes,Ionic针对iPhone和Android设备(目前)。它还支持iOS 6+和Android 4.0+(虽然2.3应该可以工作)。但是,由于有许多不同的Android设备,某些可能无法正常工作。 Ionic没有为Android 2.3保证,因此Android 2.2将超出范围。
因此,我认为这就是你遇到挑战的原因。
答案 2 :(得分:1)
仅供参考,谷歌将Honeycomb和后来的Android版本的后端功能转移到“兼容性”库中。您可以安装它并让您的应用程序在旧版Android上运行。您需要更新Android SDK并安装此库。
请参阅Android Support Library文档。
如果你正在使用Ionic,你可以添加一个钩子脚本,当你将Android作为平台添加或开始构建时,它会将库复制到你的项目中。
答案 3 :(得分:0)
更改离子项目"android-minSdkVersion"
中config.xml
的值。它应该如下所示:
<preference name="android-minSdkVersion" value="14"/>
答案 4 :(得分:0)
似乎cdvCompileSdkVersion用于确定构建SDK而不是targetSdkVersion,就像在本机Android应用程序中使用的那样。