web-dev-qa-db-ja.com

IonicプロジェクトでCrosswalk統合後にarmv7 / x86 apkを組み合わせてビルドする

ionicプロジェクトにCrosswalkを追加しました。ionic build Androidを実行すると、armv7用とx86用の2つのAPKファイルが出力されます。

ただし、2つのアーキテクチャを1つにまとめた1つのapkファイルが必要です。

BUILD_MULTIPLE_APKS = falseを設定しようとしましたが、まだ2つの個別のAPKを構築しています。

投稿があります こちら 言って:

少し時間がかかりましたが、platforms/Android/gradle.propertiesのcdvBuildMultipleApks = true行をコメントアウトすることで、単一のビルドファイルを取得できます。

乾杯

しかし、platforms/Android /フォルダーにgradle.propertiesファイルがなく、project.propertiesファイルがあり、コメントアウトするcdvBuildMultipleApks=true行がありません。

手動でgradle.propertiesファイルを作成し、そこにcdvBuildMultipleApks=falseを配置しようとしましたが、それでも2つの出力がありました。

これを達成する方法はありますか?

更新:

Cordovaのバージョンは5.1.1です

解決策:

@mudasserajazと here が示唆するように、私にとっては何がうまくいきましたか?

  1. build-extras.gradleディレクトリ内に/platform/Android/という名前のファイルを作成します。
  2. ext.cdvBuildMultipleApks=falseをその中に入れます。
  3. ionic build Android --releaseその後、出来上がり、うまくいきました。

@mudasserajazは、変数名がcdvBuildMultipleApks=falseである以外は同じことを提案したので、うまくいかなかった場合は、extを忘れないでください

39
Sobhan

これを行う手順は次のとおりです。

  1. ファイルを作成するbuild-extras.gradleそしてplatforms/Android/。行を追加cdvBuildMultipleApks=false into build-extras.gradle
  2. ionic run Android、単一のビルドを組み合わせて作成しますAndroid-debug.apk

build.gradleは自動的にインポートされますbuild-extras.gradle、それが定義されている場合。build.gradleこれを行う:

def hasBuildExtras = file('build-extras.gradle').exists()
if (hasBuildExtras) {
    apply from: 'build-extras.gradle'
}

さらに、これらの指示はbuild.gradle 57行目:

構成プロパティ。これらを環境変数、build-extras.gradle、またはgradle.propertiesを介して設定します。

注:これらの手順を実行する前に、プラットフォームフォルダーを削除して再インストールします。

Observations:これらの手順を実行した後、ある時点で別のビルドを作成し、cdvBuildMultipleApks=trueまたはコメントアウトが機能しない場合があります。プラットフォームを再度インストールする必要があります。 (P.Sこれは私の個人的な観察であり、そうでない場合はbuild-extras.gradleで十分です。

41
Mudasser Ajaz

さて、私はconfig.xmlfalseのプロパティに従い、ビルドapkを組み合わせました。

から

<preference name="xwalkMultipleApk" value="true"/>

<preference name="xwalkMultipleApk" value="false"/>

私のシステムionic infoは戻ります

Your system information:

Cordova CLI: 6.1.1
Gulp version:  CLI version 3.9.1
Gulp local:   Local version 3.9.1
Ionic CLI Version: 1.7.16
Ionic App Lib Version: 0.7.3
OS:
Node Version: v4.4.4
45

今日、2018年には、Intel CPUを使用するモバイルはほとんどないため、x86モバイルプラットフォームはおそらく無視できます。

これには、APKが小さいという利点があります。単一プラットフォームのAPKは、マルチプラットフォームのAPKよりも小さいです。

3
Henry Luo

必ず出力フォルダーを確認してください。

Build-extra.gradleに追加した後、「cordova build」はarm7とx86の両方で出力されますが、出力フォルダーには「Android-release.apk」も含まれています。

出力フォルダー(project/platforms/Android/build/outputs/apk /)からarm7とx86 APKの両方を削除する

すぐに「コロドバビルド」で表示されなくなりました。

お役に立てれば。

0
Alex G