web-dev-qa-db-ja.com

公開Androidアプリ-APKの詳細を区別する-「ネイティブプラットフォーム」=なし?

編集:

@ marbarfaの回答 のように、これはサードパーティのライブラリに関連しているようです。完全な説明については、彼の回答とコメントを読んでください。

ありがとうmarbarfa!


新しいGooglePlay Developerコンソールを使用して、奇妙な状況に直面しています。最近、Facefbookのフレスコ画像読み込みライブラリに切り替えました。これが私の問題の原因である可能性があります。

(おそらく同様の問題がここで報告されています: Google Play、アプリの更新の公開、「ネイティブプラットフォーム」の問題

ベータビルドを本番環境にプロモートするフレームで、私はこれに遭遇しました:

新しいGooglePlayコンソールの[リリース管理]/[アプリのリリース]で、[新しいリリースから本番環境への移行(ベータ2.2.0からのプロモーション)]で、

「ネイティブプラットフォーム」の値がarm64-v8a、armeabi、armeabi-v7a、x86、x86_64からnoneに変更されました!

「前のAPK」のGooglePlayコンソールページコードの抜粋:

Differentiating APK details
Native platforms

arm64-v8a, armeabi, armeabi-v7a, x86, x86_64

「新しいAPK」(Facebookのフレスコを使用したベータ版)のGoogle Playコンソールページコードの抜粋:

Differentiating APK details
Native platforms

none

すべての(10!)アプリを更新しましたが、問題はないようです(サポートされているデバイスの数は同じ、つまり11434です)が、それでも、正確に何が起こったのかを理解できないことに満足していません。

誰か説明してもらえますか?

ありがとう!

10
Pascal

問題をできるだけ簡単に説明しようと思います。

一部のアーキテクチャ(例:arm64-v8a, armeabi, armeabi-v7a, x86, x86_64)で分割しているときに問題が発生するようですが、それらのアーキテクチャにネイティブ実装がありません。

たとえば、私の場合はmipsとmips64でした。

Playストアは、lib/$Archフォルダーに基づいてapkでサポートされているアーキテクチャを認識しているようです。したがって、apkにこのフォルダーがない場合、プレイストアには「none "as" native platform "」と表示されます(apkを解凍すると確認できます)。

問題は、 "none"が "すべてのアーキテクチャがサポートされています"として解釈され、バージョンコードに基づいてapkがダウンロードされることです。

"native platform" as "none"のapkがあり、ネイティブ実装を持つ別のapkよりも高いversionCodeがある場合、ユーザーはより高いapkをダウンロードすることになります。 versionCode。アプリや構成によっては、これでうまくいくかどうかがわかります。

この問題は、gradleがapkを分割する方法で発生し、分割のversionCodeを定義する方法に注意する必要があります。

12
marbarfa