我正在尝试在 AVD 模拟器中安装 Play Store。Google APIS build
但失败了一次又一次。所以我开始寻找解决方案。但都不起作用。
原因?这就是原因
android@Debian-101-buster-64-minimal:~/Downloads$ adb install 'Google Play Store_v17.1.16-all [0] [PR] 274697545_apkpure.com.apk'
adb: failed to install Google Play Store_v17.1.16-all [0] [PR] 274697545_apkpure.com.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package com.android.vending signatures do not match the previously installed version; ignoring!]
android@Debian-101-buster-64-minimal:~/Downloads$
好的。已安装名为“package name”的软件包com.android.vending
,但该软件包肯定不是 Play store
那是什么?我也发现了!
android@Debian-101-buster-64-minimal:~$ adb shell pm path com.android.vending
package:/system/app/LicenseChecker/LicenseChecker.apk
dumpsys 的输出
android@Debian-101-buster-64-minimal:~$ adb shell dumpsys package com.android.vending
Service Resolver Table:
Non-Data Actions:
com.android.vending.licensing.ILicensingService:
dbab1b8 com.android.vending/.licensing.LicensingService filter 2371e08
Action: "com.android.vending.licensing.ILicensingService"
AutoVerify=false
Permissions:
Permission [com.android.vending.CHECK_LICENSE] (6f3eb91):
sourcePackage=com.android.vending
uid=10055 gids=null type=0 prot=normal
perm=Permission{ac7aaf6 com.android.vending.CHECK_LICENSE}
packageSetting=PackageSetting{d5eeef7 com.android.vending/10055}
Key Set Manager:
[com.android.vending]
Signing KeySets: 4
Packages:
Package [com.android.vending] (d5eeef7):
userId=10055
pkg=Package{8453164 com.android.vending}
codePath=/system/app/LicenseChecker
resourcePath=/system/app/LicenseChecker
legacyNativeLibraryDir=/system/app/LicenseChecker/lib
primaryCpuAbi=null
secondaryCpuAbi=null
versionCode=1801 minSdk=25 targetSdk=25
versionName=1.8
splits=[base]
apkSigningVersion=2
applicationInfo=ApplicationInfo{1daafcd com.android.vending}
flags=[ SYSTEM HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP ]
privateFlags=[ RESIZEABLE_ACTIVITIES ]
dataDir=/data/user/0/com.android.vending
supportsScreens=[small, medium, large, xlarge, resizeable, anyDensity]
timeStamp=2019-04-12 22:25:12
firstInstallTime=2019-04-12 22:25:12
lastUpdateTime=2019-04-12 22:25:12
signatures=PackageSignatures{13b8082 [ef3d224c]}
installPermissionsFixed=false installStatus=1
pkgFlags=[ SYSTEM HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP ]
declared permissions:
com.android.vending.CHECK_LICENSE: prot=normal, INSTALLED
requested permissions:
android.permission.INTERNET
android.permission.USE_CREDENTIALS
com.google.android.googleapps.permission.GOOGLE_AUTH
com.google.android.googleapps.permission.GOOGLE_AUTH.android
com.google.android.providers.gsf.permission.READ_GSERVICES
install permissions:
android.permission.USE_CREDENTIALS: granted=true
com.google.android.providers.gsf.permission.READ_GSERVICES: granted=true
com.google.android.googleapps.permission.GOOGLE_AUTH: granted=true
android.permission.INTERNET: granted=true
com.google.android.googleapps.permission.GOOGLE_AUTH.android: granted=true
User 0: ceDataInode=114773 installed=true hidden=false suspended=false stopped=false notLaunched=false enabled=1
gids=[3003]
runtime permissions:
Dexopt state:
[com.android.vending]
Instruction Set: x86
path: /system/app/LicenseChecker/LicenseChecker.apk
status: /system/app/LicenseChecker/oat/x86/LicenseChecker.odex [compilation_filter=speed, status=kOatUpToDate]
Compiler stats:
[com.android.vending]
(No recorded stats)
android@Debian-101-buster-64-minimal:~$
并且这个包根本无法删除/卸载!
我尝试用 Play 商店应用覆盖它 来自 Open Gapps 和 Apkpure
每次尝试都失败了。我曾经得到过图标,但它总是崩溃。
如何在 Google APIS 内置的 AVD 模拟器中安装 Play 商店应用
我需要使用它来代替 Play Store 版本
答案1
Google Play Store 已正式预装在 Android 模拟器中多年。虽然有些模拟器很难安装,但对于 API 24 及以上版本,只需从 AVD 管理器中选择已安装 Google Play 的模拟器即可轻松安装。
在 Android Studio AVD 管理器中,选择旁边带有 Google Play 商店图标的虚拟设备配置,然后选择带有“Google Play”标签的系统映像之一。请参阅此发行说明:https://androidstudio.googleblog.com/2017/04/android-studio-24-preview-4-is-now.html。
文章中介绍了在未预装 Play Store 的模拟器中安装 Play Store 的过程 在 Android 模拟器中安装 Google Play Store。
以下是该文章的摘要:
从以下位置下载 Google Play 软件包 开放 GApps 项目
解压缩文件并从核心文件夹中提取突出显示的内容:
要解压这些
tar.lz
文件可能需要安装程序lzip
包,然后使用以下命令:tar -xf vending-x86.tar.lz
最终结果是:
检查特权应用目录中是否缺少 APK:
adb shell ls system/priv-app
在上图中与 Google 服务相关的 APK 已经安装完毕,因此我们只需要从
vending-x86
名为 的文件夹中安装 APKPhonesky.apk
。Ctrl使用+退出模拟器D
将此 APK 推送到模拟器:
$ANDROID_HOME/tools/emulator @avd_name -writable-system adb remount adb push ~/Phonesky.apk /system/priv-app/ adb shell stop && adb shell start
Google Play Store 图标现在应该位于应用程序抽屉中。