web-dev-qa-db-ja.com

phonegapで最小SDKを指定するにはどうすればよいですか? config.xmlのAndroid-minsdkversionを無視しています

これはphonegap 3.5/cordova 3 Android app。www/config.xmlにあります:

<preference name="Android-minSdkVersion" value="19">
<preference name="Android-targetSdkVersion" value="19">

ただし、ビルドすると、次のようにAndroidManifest.xmlが作成されます。

<uses-sdk Android:minSdkVersion="10" Android:targetSdkVersion="19" />

その結果、SDKバージョンが19未満のユーザーはストアからアプリをインストールできます。その10をどこから取得し、どのように変更できますか?ビューポートの奇妙さのために、私のアプリの動作は4.4より下のOSでは疑わしく、4.2.2ユーザーから既に1つ星のレビューを受けています。

35
DevOfZot

以前のバージョンのcordova CLIでは、回答で行ったようにいくつかの設定(起動モード、minsdk ...)を変更するために手動でAndroidManifest.xmlを変更していました。

そしてCordova 3.5。somethingで問題が発生し始め、プロジェクトをビルドするたびにいくつかの変更が失われました。

config.xmlにこれらの行を追加すると、設定が自動的に更新されます。

<platform name="Android">
    <preference name="AndroidLaunchMode" value="singleTop"/>
    <preference name="Android-minSdkVersion" value="14" />
    <icon src="res/Android/xhdpi.png" />
    <icon src="res/Android/ldpi.png" density="ldpi" />
    <icon src="res/Android/mdpi.png" density="mdpi" />
    <icon src="res/Android/hdpi.png" density="hdpi" />
    <icon src="res/Android/xhdpi.png" density="xhdpi" />
</platform>

利点は、Androidプラットフォームを削除し、設定を失うことなく再作成できることです。

Phonegapはコルドバとインラインになるように更新されているため、config.xmlの設定は新しいバージョンでも動作するはずです。

56
QuickFix

ステップ1) yourapp/config.xml file <platform name="Android">タグは2つの設定を追加します

<platform name="Android">
    <preference name="Android-minSdkVersion" value="14" />
    <preference name="Android-targetSdkVersion" value="19" />
</platform>

ステップ2)cordova platform rm Android cmdコードを実行

ステップ3)cordova platform add Android cmdコードの実行以下のように見える場合は、AndroidManifest.xmlファイルを確認してください。

<uses-sdk Android:minSdkVersion="14" Android:targetSdkVersion="19" />

すべてが大丈夫です :)

32
Ferhat KOÇER

編集して改善された回答:

これに答えるには、ビルドバージョンまたはAPIレベルから始めることをお勧めします。 APIレベルは、Androidプラットフォームのバージョンによって提供されるフレームワークAPIリビジョンを一意に識別する整数値です。

API Level 8 == Android Platform 2.3(ginger bread)
API Level 17 == Android Platform 4.2(Jelly bean)

APILevelとそのAndroidPlatformチェックの完全な比較を確認するには here


targetSdkはphonegapのみで使用されます。これは、特定のAPILevelを使用してこのアプリをビルドするようphonegapに指示します。これは、ユーザーによるアプリのダウンロードを制限するものではありません。 「このアプリはこのAPILevel向けに最適化されています」と言った方がいいでしょう。例

 <preference name="Android-targetSdkVersion" value="17"/> //Android 4.2

このアプリは、APILevel 17(jellyBeanまたはandroidPlatform4.2)を使用してビルド(最適化)されます


minSdk一方、ユーザー/デバイスを制限します。 minSdkは、ユーザー/デバイスのSdkの最小要件です。 minSdkで使用されるAPILevel未満のAPIlevelを持つデバイスは、このアプリをダウンロードできません。例:

 <preference name="Android-minSdkVersion" value="11"/> //Android 3.0

このアプリをダウンロードするには、デバイスは少なくともAndroid 3.0(APILevel 11)で実行する必要があります


最後に、一緒に使用する場合:

<preference name="Android-minSdkVersion" value="11"/> //Android 3.0

 <preference name="Android-targetSdkVersion" value="17"/> //Android 4.2

このステートメントは、このアプリがAndroid4.2向けに最適化され、最小要件Android 3.0


Doc: http://docs.build.phonegap.com/en_US/configuring_preferences.md.html#Preferences

21
vdj4y

特定のターゲットバージョンを設定する方法を探してここにたどり着く人のために、私はこれを見つけました。ターゲットを変更する必要がありました:

プロジェクトのターゲット。

target = Android-22これは、次の2つのファイルで実行する必要があります。

myApp/platforms/Android/project.properties myApp/platforms/Android/CordovaLib/project.properties

また、マニフェストも更新する必要があります。

ここに置かれたセバスチャン答えから: Cordova:[エラー:インストールしてくださいAndroid target: "Android-21"

2
Leo Medeiros

Platform/Android/AndroidManifest.xmlを手動で編集することでこれを修正できました。

<uses-sdk Android:minSdkVersion="19" Android:targetSdkVersion="19" />

Phonegap documentation は、このファイルがAndroid-minSdkVersion設定の値を継承する必要があることを示唆しているようですが、手動で変更する必要があります。 Android-minSdkVersionプリファレンスは、私が知る限り、何もしないようです。

0
DevOfZot