簡體   English   中英

你如何為 ionic/cordova 構建和部署到舊版本的 android

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM