web-dev-qa-db-ja.com

古いバージョンの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.

Android 4.x.x電話およびAndroid 2.2電話の場合、ion/cordovaでビルドを動作させるにはどうすればよいですか?

22
Derek

この質問はあなたのものに似ています。 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レベルを確認してください。

あなたの場合:for Android 2.2、use 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)を実行できます。

15
vdj4y

Ionic Platform notes 、Ionic iPhoneを対象とし、Androidデバイス(現在)。iOS6+をサポートしています。 Android 4.0+(2.3は動作するはずですが)。ただし、さまざまなAndroidデバイスがあるため、特定のデバイスが動作しない可能性があります。Ionicは、Android 2.3を保証しなかったため、Android 2.2は範囲外になります。

したがって、それがあなたが挑戦している理由だと思います。

1
Paullo

ちなみに、GoogleはHoneycombの機能をバックポートし、それ以降のバージョンのAndroidから「互換性」ライブラリに。これをインストールして、Androidの古いバージョンでアプリを動作させることができるかもしれません。 Android SDKを更新し、このライブラリをインストールする必要があります。

Android Support Library docsを参照してください。

Ionicを使用している場合、プラットフォームとしてAndroidを追加するかビルドを開始するときに、ライブラリをプロジェクトにコピーするフックスクリプトを追加できます。

1
Eno

ionicプロジェクトの"Android-minSdkVersion"config.xmlの値を変更します。次のようになります。

<preference name="Android-minSdkVersion" value="14"/>
0
Yuvraj Patil

CdvCompileSdkVersionは、ネイティブAndroidアプリで使用されるようなtargetSdkVersionではなく、ビルドSDKを決定するために使用されるようです。

0
TheBearF8