[英]How do you build and deploy to an older version of android for ionic / cordova
使用 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.
如何使構建在 ionic/cordova 中適用於 android 4.xx 手機和 android 2.2 手機?
這個問題和你的類似。 堆棧溢出
轉到您的 AndroidManifest.xml,找到這些來控制您的 sdk 構建版本。
<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,使用 value= 8(API level 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 Platform 說明,Ionic 的目標是 iPhone 和 Android 設備(目前)。 它還支持 iOS 6+ 和 Android 4.0+(盡管 2.3 應該可以工作)。 但是,由於有很多不同的 Android 設備,因此某些設備可能無法正常工作。 Ionic 不保證 Android 2.3,因此 Android 2.2 將超出范圍。
因此,我認為這就是您遇到挑戰的原因。
僅供參考,Google 將 Honeycomb 和更高版本的 Android 中的功能向后移植到“兼容性”庫中。 您也許可以安裝它並使您的應用程序在舊版本的 Android 上運行。 您需要更新您的 Android SDK 並安裝此庫。
請參閱Android 支持庫文檔。
如果您使用的是 Ionic,您可以添加一個鈎子腳本,在您添加 Android 作為平台或開始構建時將庫復制到您的項目中。
更改 ionic 項目的config.xml
中"android-minSdkVersion"
值。 它應該如下所示:
<preference name="android-minSdkVersion" value="14"/>
看起來 cdvCompileSdkVersion 用於確定構建 SDK 而不是 targetSdkVersion ,就像在本機 Android 應用程序中使用的那樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.