โปรแกรมจำลอง Android Studio ไม่มี Play Store สำหรับ API 23


92

ฉันเลือกโปรแกรมจำลองนี้จาก Android Studio AVD เวอร์ชันล่าสุด

Google API

ฉันเลือก android API 23 เวอร์ชันล่าสุดแล้วเพราะมันขึ้นว่า "with Google APIs" ฉันจึงคิดว่ามันจะรวมแอพ Google ทั้งหมดไว้ด้วยรวมถึง Play Store ด้วยเพื่อที่ฉันจะได้ติดตั้งแอพอย่าง Facebook

ฉันเคยเห็นเธรดอื่น ๆ ใน SO ซึ่งดูเหมือนว่าจะล้าสมัยแล้ว ( จะติดตั้งแอพ Google Play ในโปรแกรมจำลอง Android Studio ได้อย่างไร ) อันนี้ให้คำแนะนำในการติดตั้งแอพ Google ตามแพ็คเกจสากล แต่มันขึ้นอยู่กับ Android 4.3 API 18 เท่านั้น: http://wiki.rootzwiki.com/Google_Apps#Universal_Packages_2

ฉันต้องการหนึ่งสำหรับ API 23 มีวิธีติดตั้งแพ็คเกจ Google Apps บนโปรแกรมจำลองหรือไม่

ดูเหมือนว่าแปลกที่ตัวจำลอง Android อย่างเป็นทางการไม่ได้มาพร้อมกับแอป Google ทั้งหมดในตอนแรก ... ดูเหมือนว่าจะไม่สนับสนุน Google มากนักและอาจหมายความว่านักพัฒนาจะต้องซื้ออุปกรณ์จริงเพื่อพัฒนาสำหรับ API 23 เหรอ?


ขอบคุณ Ms Yvette ฉันคิดว่าการได้รับคำตอบสำหรับคำถามนี้สำหรับชุมชน Android เป็นเรื่องสำคัญ มีนักพัฒนา Android จำนวนมากที่ไม่มีการเข้าถึงอุปกรณ์ Android จริงและฉันสงสัยว่าพวกเขาจะพัฒนาสำหรับ Android ได้อย่างไรเมื่อพวกเขาไม่ได้รับอนุญาตให้เข้าถึงเครื่องมือทั้งหมด
Simon

1
ฉันมีเครดิตไม่เพียงพอที่จะแสดงความคิดเห็นด้านบน Re: พาร์ติชันระบบอ่านอย่างเดียว / ตรวจสอบให้แน่ใจว่าคุณส่งอาร์กิวเมนต์ "-writable-system" เมื่อคุณเรียก emulator.exe ตัวอย่างเช่น: START / B emulator.exe @ Nexus_7-2012_API_22 -no-boot-anim -writable-system
pjl

@pjl - ขอบคุณสำหรับความคิดเห็นนี้! ฉันได้เพิ่มคำตอบของฉันแล้ว
Dev-iL

Google กล่าวว่าพวกเขากำลังดำเนินการเพิ่มการสนับสนุน Play Store ให้กับโปรแกรมจำลอง ในขณะเดียวกันมีวิธีแก้ปัญหาบางประการที่คุณสามารถเลือกได้ การใช้ Amazon Appstore เป็นทางเลือกหนึ่ง แต่ไม่ใช่ทางเลือกเดียว ดูที่นี่ .
unforgettableidSupportsMonica

คำตอบ:


56

เมื่อเร็ว ๆ นี้ฉันต้องทำสิ่งนี้กับโปรแกรมจำลอง API 23 และทำตามคำแนะนำนี้ ใช้งานได้กับโปรแกรมจำลอง API 23 ดังนั้นคุณไม่ควรมีปัญหา

หมายเหตุ: เครดิตทั้งหมดจะมอบให้ผู้เขียนบล็อกโพสต์ที่เชื่อมโยง (pyoor) ฉันแค่โพสต์ไว้ที่นี่ในกรณีที่ลิงก์พังไม่ว่าด้วยเหตุผลใดก็ตาม

....

ดาวน์โหลดแพ็คเกจ GAPPS

ต่อไปเราต้องดึงแพ็คเกจ Google Apps ที่เหมาะสมซึ่งตรงกับเวอร์ชัน Android AVD ของเรา ในกรณีนี้เราจะใช้แพ็คเกจ 'gapps-lp-20141109-signed.zip' คุณสามารถดาวน์โหลดไฟล์ที่จาก BasketBuild ที่นี่

[pyoor@localhost]$ md5sum gapps-lp-20141109-signed.zip
367ce76d6b7772c92810720b8b0c931e gapps-lp-20141109-signed.zip

ในการติดตั้ง Google Play เราจะต้องพุช APK 4 รายการต่อไปนี้ไปยัง AVD ของเรา (อยู่ใน. / system/priv-app/):

GmsCore.apk, GoogleServicesFramework.apk, GoogleLoginService.apk, Phonesky.apk

[pyoor@localhost]$ unzip -j gapps-lp-20141109-signed.zip \
system/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk \
system/priv-app/GoogleLoginService/GoogleLoginService.apk \
system/priv-app/Phonesky/Phonesky.apk \
system/priv-app/GmsCore/GmsCore.apk -d ./

พุช APK ไปยัง Emulator

ด้วยการแยก APK ของเราให้เปิด AVD ของเราโดยใช้คำสั่งต่อไปนี้

[pyoor@localhost tools]$ ./emulator @<YOUR_DEVICE_NAME> -no-boot-anim

อาจใช้เวลาหลายนาทีในครั้งแรกเมื่อสร้าง AVD เมื่อเริ่มต้นแล้วเราต้องติดตั้งพาร์ติชันระบบ AVDs ใหม่เป็นอ่าน / เขียนเพื่อให้เราสามารถผลักดันแพ็คเกจของเราไปยังอุปกรณ์ได้

[pyoor@localhost]$ cd ~/android-sdk/platform-tools/
[pyoor@localhost platform-tools]$ ./adb remount

จากนั้นดัน APK ไปยัง AVD ของเรา:

[pyoor@localhost platform-tools]$ ./adb push GmsCore.apk /system/priv-app/
[pyoor@localhost platform-tools]$ ./adb push GoogleServicesFramework.apk /system/priv-app/
[pyoor@localhost platform-tools]$ ./adb push GoogleLoginService.apk /system/priv-app/
[pyoor@localhost platform-tools]$ ./adb push Phonesky.apk /system/priv-app

กำไร!

และสุดท้ายรีบูตตัวจำลองโดยใช้คำสั่งต่อไปนี้:

[pyoor@localhost platform-tools]$ ./adb shell stop && ./adb shell start

เมื่ออีมูเลเตอร์รีสตาร์ทเราจะเห็นแพ็คเกจ Google Play ปรากฏในตัวเรียกใช้เมนู หลังจากเชื่อมโยงบัญชี Google กับ AVD นี้เรามี Google Play เวอร์ชันที่ใช้งานได้เต็มรูปแบบซึ่งทำงานภายใต้โปรแกรมจำลองของเรา


29
ฉันได้รับข้อผิดพลาด "ReadOnly file system" และไม่มีการติดตั้งไฟล์ apk ใด ๆ
wmac

6
น่าเสียดายที่ดูเหมือนว่า BasketBuild จะไม่มีให้บริการอีกต่อไป s.basketbuild.comระบุว่ามีการหยุดทำงานตั้งแต่อย่างน้อย 9/3 โดยไม่มี ETA ที่จะขึ้น มีแหล่งอื่นที่คุณแนะนำสำหรับแอป Google หรือไม่
Chad Schultz

1
หากคุณมีข้อผิดพลาด "Read-only file system" ให้เรียกใช้คำสั่ง: "adb remount" จากนั้นลองคำสั่ง "adb push ... " อีกครั้ง
Shangwu

4
ลิงค์ทั้งหมดตาย
Mooing Duck

1
ใครก็ตามที่ไม่สามารถรับgapps
Manny265

53

ด้านล่างนี้เป็นวิธีที่ใช้ได้ผลกับฉันในตัวเลียนแบบAPI 23-25 คำอธิบายมีไว้สำหรับ API 24 แต่ทำงานเกือบเหมือนกันสำหรับเวอร์ชันอื่น ๆ

เครดิต : จอน Doe , zaidorx , PJL

คำแนะนำที่อบอุ่นสำหรับผู้อ่าน: โปรดทำตามขั้นตอนต่างๆก่อนที่จะทำตามเนื่องจากบางส่วนจะดำเนินการโดยอัตโนมัติผ่านสคริปต์ที่ให้มา


  1. ในตัวจัดการ AVD ของสตูดิโอ Android (ทดสอบบน v2.2.3) ให้สร้างโปรแกรมจำลองใหม่ด้วยเป้าหมาย "Android 7.0 (Google APIs)": หน้าจอ AVD หลังจากสร้างโปรแกรมจำลอง

  2. ดาวน์โหลดแพ็คเกจOpen GAppsล่าสุดสำหรับสถาปัตยกรรมของโปรแกรมจำลอง (CPU / ABI) ในกรณีของฉันมันเป็นx86_64แต่อาจเป็นอย่างอื่นได้ขึ้นอยู่กับการเลือกภาพของคุณในระหว่างวิซาร์ดการสร้างอุปกรณ์ สิ่งที่น่าสนใจคือสถาปัตยกรรมดูเหมือนสำคัญกว่า Android เวอร์ชันที่ถูกต้อง (เช่น gapps สำหรับ 6.0 ทำงานบนโปรแกรมจำลอง 7.0 ด้วย)

  3. แตก.apkไฟล์โดยใช้จากพา ธ ต่อไปนี้ (สัมพันธ์กับopen_gapps-x86_64-7.0-pico-201#####.zip):

    .zip\Core\gmscore-x86_64.tar.lz\gmscore-x86_64\nodpi\priv-app\PrebuiltGmsCore\
    .zip\Core\gsfcore-all.tar.lz\gsfcore-all\nodpi\priv-app\GoogleServicesFramework\
    .zip\Core\gsflogin-all.tar.lz\gsflogin-all\nodpi\priv-app\GoogleLoginService\
    .zip\Core\vending-all.tar.lz\vending-all\nodpi\priv-app\Phonesky\
    

    โปรดทราบว่าเปิด GApps ใช้การบีบอัด Lzip ซึ่งสามารถเปิดได้โดยใช้เครื่องมือที่พบในเว็บไซต์ Lzip 1 , 2หรือบน Mac ใช้ brew install lzipHomebrew: แล้วเช่นlzip -d gmscore-x86_64.tar.lz.

    ฉันกำลังจัดเตรียมไฟล์แบตช์ที่ใช้7z.exeและlzip.exeแยกไฟล์ที่จำเป็นทั้งหมด.apkโดยอัตโนมัติ (บน Windows):

    @echo off
    echo.
    echo #################################
    echo Extracting Gapps...
    echo #################################
    7z x -y open_gapps-*.zip -oGAPPS
    
    echo Extracting Lzips...
    lzip -d GAPPS\Core\gmscore-x86_64.tar.lz
    lzip -d GAPPS\Core\gsfcore-all.tar.lz
    lzip -d GAPPS\Core\gsflogin-all.tar.lz
    lzip -d GAPPS\Core\vending-all.tar.lz
    
    move GAPPS\Core\*.tar
    
    echo. 
    echo #################################
    echo Extracting tars...
    echo #################################
    
    7z e -y -r *.tar *.apk
    
    echo.
    echo #################################
    echo Cleaning up...
    echo #################################
    rmdir /S /Q GAPPS
    del *.tar
    
    echo.
    echo #################################
    echo All done! Press any key to close.
    echo #################################
    pause>nul
    

    ในการใช้สิ่งนี้ให้บันทึกสคริปต์ในไฟล์ (เช่นunzip_gapps.bat) และใส่ทุกสิ่งที่เกี่ยวข้องในโฟลเดอร์เดียวดังที่แสดงด้านล่าง: ควรมีลักษณะอย่างไร ...

  4. อัปเดตsuไบนารีเพื่อให้สามารถแก้ไขสิทธิ์ของไฟล์ที่เราจะอัปโหลดในภายหลัง ใหม่suไบนารีสามารถพบได้ในSuperSU โดย Chainfireแพคเกจ"การกู้คืน zipflashable" รับ zip แยกออกจากที่ใดที่หนึ่งสร้างไฟล์แบตช์ที่มีเนื้อหาต่อไปนี้ในโฟลเดอร์เดียวกันและสุดท้ายเรียกใช้:

    adb root
    adb remount
    
    adb push eu.chainfire.supersu_2.78.apk /system/app/
    adb push x64/su /system/xbin/su
    adb shell chmod 755 /system/xbin/su
    
    adb shell ln -s /system/xbin/su /system/bin/su
    adb shell "su --daemon &"
    adb shell rm /system/app/SdkSetup.apk
    
  5. ใส่.apkไฟล์ทั้งหมดในโฟลเดอร์เดียวและสร้างไฟล์แบตช์ที่มีเนื้อหาเหล่านี้3 :

    START /B E:\...\android-sdk\tools\emulator.exe @Nexus_6_API_24 -no-boot-anim -writable-system
    adb wait-for-device
    adb root
    adb shell stop
    adb remount
    adb push PrebuiltGmsCore.apk /system/priv-app/PrebuiltGmsCore
    adb push GoogleServicesFramework.apk /system/priv-app/GoogleServicesFramework
    adb push GoogleLoginService.apk /system/priv-app/GoogleLoginService
    adb push Phonesky.apk /system/priv-app/Phonesky/Phonesky.apk
    adb shell su root "chmod 777 /system/priv-app/**"
    adb shell su root "chmod 777 /system/priv-app/PrebuiltGmsCore/*"
    adb shell su root "chmod 777 /system/priv-app/GoogleServicesFramework/*"
    adb shell su root "chmod 777 /system/priv-app/GoogleLoginService/*"
    adb shell su root "chmod 777 /system/priv-app/Phonesky/*"
    adb shell start
    

    โปรดสังเกตว่าเส้นทางE:\...\android-sdk\tools\emulator.exeควรได้รับการแก้ไขตามตำแหน่งของ Android SDK ในระบบของคุณ

  6. เรียกใช้ไฟล์แบตช์ด้านบน (คอนโซลควรมีลักษณะเช่นนี้ในภายหลัง):

    O:\123>START /B E:\...\android-sdk\tools\emulator.exe @Nexus_6_API_24 -no-boot-anim -writable-system
    
    O:\123>adb wait-for-device
    Hax is enabled
    Hax ram_size 0x60000000
    HAX is working and emulator runs in fast virt mode.
    emulator: Listening for console connections on port: 5554
    emulator: Serial number of this emulator (for ADB): emulator-5554
    
    O:\123>adb root
    
    O:\123>adb shell stop
    
    O:\123>adb remount
    remount succeeded
    
    O:\123>adb push PrebuiltGmsCore.apk /system/priv-app/PrebuiltGmsCore/
    [100%] /system/priv-app/PrebuiltGmsCore/PrebuiltGmsCore.apk
    
    O:\123>adb push GoogleServicesFramework.apk /system/priv-app/GoogleServicesFramework/
    [100%] /system/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk
    
    O:\123>adb push GoogleLoginService.apk /system/priv-app/GoogleLoginService/
    [100%] /system/priv-app/GoogleLoginService/GoogleLoginService.apk
    
    O:\123>adb push Phonesky.apk /system/priv-app/Phonesky/Phonesky.apk
    [100%] /system/priv-app/Phonesky/Phonesky.apk
    
    O:\123>adb shell su root "chmod 777 /system/priv-app/**"
    
    O:\123>adb shell su root "chmod 777 /system/priv-app/PrebuiltGmsCore/*"
    
    O:\123>adb shell su root "chmod 777 /system/priv-app/GoogleServicesFramework/*"
    
    O:\123>adb shell su root "chmod 777 /system/priv-app/GoogleLoginService/*"
    
    O:\123>adb shell su root "chmod 777 /system/priv-app/Phonesky/*"
    
    O:\123>adb shell start
    
  7. เมื่อโหลดโปรแกรมจำลอง - ใกล้มันลบอุปกรณ์เสมือนแล้วสร้างอีกคนหนึ่งโดยใช้ภาพระบบเดียวกัน วิธีนี้ช่วยแก้ไขแอป Play Store ที่ไม่ตอบสนอง "บริการ Google Play หยุดทำงาน" และปัญหาที่คล้ายกัน มันใช้งานได้เพราะในขั้นตอนก่อนหน้านี้เราได้แก้ไขอิมเมจระบบด้วยตัวเอง (ดูวันที่แก้ไขบนandroid-sdk\system-images\android-24\google_apis\x86_64\system.img) ซึ่งหมายความว่าอุปกรณ์ทุกชิ้นที่สร้างขึ้นจากนี้ด้วยอิมเมจระบบจะมีการติดตั้ง gapps!

  8. เริ่ม AVD ใหม่ หากใช้เวลาโหลดนานผิดปกติให้ปิดและเริ่มโดยใช้:

    START /B E:\...\android-sdk\tools\emulator.exe @Nexus_6_API_24
    adb wait-for-device
    adb shell "su --daemon &"
    

    หลังจาก AVD เริ่มขึ้นคุณจะเห็นภาพด้านล่าง - สังเกตเห็นไอคอน Play Store ที่มุม!

บูตครั้งแรกโดยติดตั้ง Play Store


3 - ฉันไม่แน่ใจว่าจำเป็นต้องใช้คำสั่งเหล่านี้ทั้งหมดและบางทีคำสั่งบางคำก็ใช้งานมากเกินไป ... :)


2
แทนที่จะเป็นไฟล์. xz ดูเหมือนว่า Open Gapps จะมีไฟล์. lz (เช่น gsfcore-all.tar.lz) ฉันได้ลองใช้เครื่องมือหลายอย่าง แต่ไม่มีเครื่องมือใดที่สามารถคลายการบีบอัดไฟล์. lz ได้ดังนั้นฉันจึงสามารถเข้าถึง APK ได้ ข้อเสนอแนะใด ๆ ?
Chad Schultz

2
@Chad Schultz นี่คือลิงค์สำหรับเครื่องมือdownload.savannah.gnu.org/releases/lzipหากคุณใช้ Windows ให้ดาวน์โหลด "lzip-1.11-w32.zip" และใช้คำสั่งต่อไปนี้เพื่อแปลงเป็นไฟล์. tar และใช้ไฟล์อื่น เครื่องมือในการดึงข้อมูลออกมาในที่สุด
f4b

1
@ Dev-iL PlayStore ได้รับการติดตั้งบนโปรแกรมจำลองของฉัน แต่ไม่เปิดขึ้น ฉันใช้ x86_64 API 23 System Image ของ Nexus 5 คิดอย่างไร
ARK

3
สิ่งนี้ใช้ได้ผลกับฉันในโปรแกรมจำลอง 25 / 7.1 ล่าสุด สิ่งเดียวที่แปลกคือ/system/app/SdkSetup.apkไม่มีอยู่ในภาพของฉัน ขอบคุณมากที่พยายามทำสิ่งนี้ออกมาเป็นบ้า!
wilsonpage

1
คุณ "สร้างอีกอันโดยใช้อิมเมจระบบเดียวกัน" ได้อย่างไร?
gavsiu

43

ตอนนี้ไม่จำเป็นต้องโหลดแพ็คเกจใด ๆ ในการรันสคริปต์ใด ๆ เพื่อรับ Play Store บนโปรแกรมจำลอง เริ่มจาก Android Studio 2.4 ตอนนี้คุณสามารถสร้าง AVD ที่ติดตั้ง Play Store ไว้ล่วงหน้าได้แล้ว ขณะนี้รองรับเฉพาะบน AVD ที่ใช้อิมเมจระบบ Android 7.0 (API 24)

แหล่งที่มาอย่างเป็นทางการ

AVD กับ Play Store

หมายเหตุ:อุปกรณ์ที่เข้ากันได้จะแสดงโดยคอลัมน์ Play Store ใหม่


7
หมายเหตุ: คุณต้องติดตั้งอิมเมจระบบที่ระบุว่า Target: Android 7.0 (Google Play)ไม่ใช่แค่ Google API ขณะนี้มีให้บริการสำหรับ API 24 เท่านั้นไม่ใช่ API 25 เมื่อคุณติดตั้งอิมเมจระบบแล้วจะปรากฏใต้แท็บแนะนำไม่ใช่แท็บรูปภาพ x86
ตวน

2
ขณะนี้ Android Studio 2.3.3 บน Linux รองรับ Play Store AVD แล้ว แต่ก็น่าสังเกตด้วยว่า Play Store ดูเหมือนว่าจะมีให้บริการในเป้าหมาย x86 เท่านั้นดังนั้นคุณยังคงต้องใช้วิธีอื่นหากต้องการรับ Play จัดเก็บบน ARM AVD
NullColaShip

ขณะนี้มีรูปภาพสำหรับ API 25, 26 และ 27 นอกเหนือจาก 24 ด้วย
arekolek

25

ต้องการแสดงความคิดเห็นในคำตอบสุดท้าย แต่หากไม่มีการเข้าสู่ระบบคุณสามารถตอบได้เท่านั้น:

หากต้องการกำจัด "ข้อผิดพลาดแบบอ่านอย่างเดียว" เพียงแค่หยุดอุปกรณ์ทันทีที่พร้อมใช้งาน สคริปต์ของฉันมีลักษณะดังนี้:

#!/bin/bash 
~/bin/AndroidSdk/tools/emulator @Nexus_6P_API_23 -no-boot-anim &
adb wait-for-device
adb shell stop
adb remount
adb push GmsCore.apk /system/priv-app
adb push GoogleServicesFramework.apk /system/priv-app
adb push GoogleLoginService.apk /system/priv-app
adb push Phonesky.apk /system/priv-app
adb shell start

1
สิ่งนี้ช่วยฉันแก้ข้อผิดพลาดของระบบไฟล์แบบอ่านอย่างเดียว เนื่องจากฉันทำงานใน windows ฉันเพิ่งละเว้นบรรทัดแรกของสคริปต์และแทนที่บรรทัดที่สองด้วย "START / B / tools / emulator @ Nexus_6P_API_23 -no-boot-anim" บันทึกด้วยนามสกุล. bat และเรียกใช้ จากบรรทัดคำสั่ง
zaidorx

1
มันยอดเยี่ยมมากฉันเพิ่งลบสองบรรทัดแรกและเปิดโปรแกรมจำลองด้วยตัวเองจากนั้นเรียกใช้ไฟล์ BAT ... ทำงานได้อย่างมีเสน่ห์
Im Rick James

ใส่ adb root ที่การขอร้องหากคุณมี adb shell stop stop: ต้องเป็น root error
nutella_eater

adb rootควรเพิ่มadb wait-for-deviceบรรทัดหลังบรรทัดเพื่อป้องกันRead-only file systemข้อผิดพลาด
efkan

1
สิ่งนี้ใช้ได้ผลเมื่อฉันเพิ่ม -writable-system ให้กับคำสั่ง emulator ของฉันเช่นนี้ ~ / android-sdk / tools / emulator @ Nexus_5X_API_23 -no-boot-anim -writable-system
reassembler

3

สิ่งที่คุณต้องทำคืออัปเดตconfig.iniไฟล์สำหรับอุปกรณ์และดาวน์โหลดอิมเมจระบบอีกครั้ง

อัปเดตค่าต่อไปนี้ในC:\Users\USER\.android\avd\DEVICE_ID\config.ini(บน Windows) หรือ~/.android/avd/DEVICE_ID/config.ini(บน Linux)

PlayStore.enabled = true
image.sysdir.1=system-images\android-27\google_apis_playstore\x86\
tag.display=Google Play
tag.id=google_apis_playstore

จากนั้นดาวน์โหลดอิมเมจระบบสำหรับอุปกรณ์อีกครั้งจากAndroid Studio> Tools> AVD Manager

นั้นคือทั้งหมด. รีสตาร์ทอุปกรณ์ของคุณและคุณจะติดตั้ง Play Store

มีคำตอบที่นี่ด้วย: จะติดตั้งแอป Google Play ในโปรแกรมจำลอง Android Studio ได้อย่างไร?


3

แก้ไขด้วยวิธีง่ายๆ: คุณควรสร้างโปรแกรมจำลองใหม่ก่อนที่จะเปิดเป็นครั้งแรกให้ทำตาม 3 ขั้นตอนง่ายๆเหล่านี้:

1- ไปที่"C: \ Users [ผู้ใช้] .android \ avd [โฟลเดอร์อุปกรณ์เสมือนของคุณ]"เปิด"config.ini"ด้วยโปรแกรมแก้ไขข้อความเช่น notepad

2- การเปลี่ยนแปลง

"PlayStore.enabled = false" เป็น "PlayStore.enabled = true"

3- การเปลี่ยนแปลง

"mage.sysdir.1 = system-images \ android-30 \ google_apis \ x86"

ถึง

"image.sysdir.1 = system-images \ android-30 \ google_apis_playstore \ x86"


ฉันทำสิ่งนี้แล้วโปรแกรมจำลองไม่สามารถบู๊ตได้อีก :(
happy_san

อันที่จริงสิ่งนี้จะได้ผลโดยตรงหากgoogle_apis_playstoreมีภาพอยู่ แต่ไม่ได้อยู่ในกรณีของฉัน ดังนั้นฉันต้องติดตั้งตาม@Aamnahคำตอบของ
happy_san

@happy_san ในบรรทัดแรกฉันบอกว่าคุณต้องสร้างโปรแกรมจำลองใหม่และก่อนที่จะเปิดเป็นครั้งแรกคุณควรทำตามที่ฉันบอก ...
Sharif Yazdian

ใช่ฉันสร้างโปรแกรมจำลองก่อนและนั่นก็มีไอคอน Google Play ด้วยใน Android Studio แต่มันไม่ได้ดาวน์โหลดgoogle_apis_playstoreภาพพร้อมกับ idk ทำไม ..
happy_san

2

นี่คือสคริปต์ที่ฉันใช้บน linux สำหรับอินสแตนซ์ Nexus 5 API 24 x86 โดยไม่มี GoogleApis

#!/bin/sh

~/Android/Sdk/tools/emulator @A24x86 -no-boot-anim -writable-system & #where A24x86 is the name i gave to my instance
~/Android/Sdk/platform-tools/adb wait-for-device
~/Android/Sdk/platform-tools/adb root
~/Android/Sdk/platform-tools/adb shell stop
~/Android/Sdk/platform-tools/adb remount
~/Android/Sdk/platform-tools/adb push ~/gapps/PrebuiltGmsCore.apk /system/priv-app/PrebuiltGmsCore/PrebuiltGmsCore.apk
~/Android/Sdk/platform-tools/adb push ~/gapps/GoogleServicesFramework.apk /system/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk
~/Android/Sdk/platform-tools/adb push ~/gapps/GoogleLoginService.apk /system/priv-app/GoogleLoginService/GoogleLoginService.apk
~/Android/Sdk/platform-tools/adb push ~/gapps/Phonesky.apk /system/priv-app/Phonesky/Phonesky.apk
~/Android/Sdk/platform-tools/adb shell "chmod 777 /system/priv-app/PrebuiltGmsCore /system/priv-app/GoogleServicesFramework"
~/Android/Sdk/platform-tools/adb shell "chmod 777 /system/priv-app/GoogleLoginService /system/priv-app/Phonesky"
~/Android/Sdk/platform-tools/adb shell "chmod 777 /system/priv-app/PrebuiltGmsCore/PrebuiltGmsCore.apk"
~/Android/Sdk/platform-tools/adb shell "chmod 777 /system/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk"
~/Android/Sdk/platform-tools/adb shell "chmod 777 /system/priv-app/GoogleLoginService/GoogleLoginService.apk"
~/Android/Sdk/platform-tools/adb shell "chmod 777 /system/priv-app/Phonesky/Phonesky.apk"
~/Android/Sdk/platform-tools/adb shell start

อันนี้ทำเพื่อฉัน

สิ่งสำคัญ:เพื่อที่จะหยุดแอปไม่ให้หยุดทำงานอย่าลืมให้สิทธิ์ตำแหน่งของบริการ Google Play

การกำหนดค่า -> แอป -> กำหนดค่า (ไอคอนรูปเฟือง) -> การอนุญาตแอป -> ตำแหน่ง -> (เมนูด้านบนขวา) -> แสดงระบบ -> เปิดใช้งานบริการ Google Play


2

ไปที่http://opengapps.org/และดาวน์โหลดเวอร์ชัน pico ของแพลตฟอร์มและเวอร์ชัน Android ของคุณ คลายซิปโฟลเดอร์ที่ดาวน์โหลดเพื่อรับ
1. GmsCore.apk
2. GoogleServicesFramework.apk
3. GoogleLoginService.apk
4. Phonesky.apk

จากนั้นค้นหา emulator.exe ของคุณ คุณอาจจะพบได้ใน
C: \ Users \ <YOUR_USER_NAME> \ AppData \ Local \ Android \ sdk \ tools

รันคำสั่ง:
emulator -avd <YOUR_EMULATOR'S_NAME> -netdelay none -netspeed full -no-boot-anim -writable-system

หมายเหตุ:ใช้ -writable-system เพื่อเริ่มโปรแกรมจำลองของคุณด้วยอิมเมจระบบที่เขียนได้

จากนั้น
adb root
adb remount
adb push <PATH_TO GmsCore.apk> / system / priv-app
adb push <PATH_TO GoogleServicesFramework.apk> / system / priv-app
adb push <PATH_TO GoogleLoginService.apk> / system / priv-app
adb push <PATH_TO Phonesky.apk> / system / priv-app

จากนั้นรีบูตตัวจำลอง
adb shell หยุด
adb shell start

ในการตรวจสอบการทำงานให้
adb shell pm รายการแพ็กเกจแล้วคุณจะพบcom.google.android.gms package สำหรับ google


1

ณ ตอนนี้การติดตั้ง apks ไปยัง/systemไดเร็กทอรีดูเหมือนว่าจะทำงานโดยใช้adb pushคำสั่ง

บริการที่ซ่อนอยู่บางอย่างกำลังต่อเชื่อม/systemไดเรกทอรีใหม่ในread-onlyโหมดโดยอัตโนมัติ

วิธีใดก็ตามที่ฉันสามารถติดตั้ง Play store ในเครื่องเสมือนปกติ (เช่นเครื่องเสมือนที่ไม่ใช่ Google-Api) เพียงแค่ติดตั้งsystem.imgไฟล์จากระบบปฏิบัติการของฉันและโดยการคัดลอกไฟล์

# To be executed as root user in your Unix based OS
mkdir sys_temp
mount $SDK_HOME/system-images/android-23/default/x86/system.img sys_temp -o loop
cp Phonesky.apk GmsCore.apk GoogleLoginService.apk GoogleServicesFramework.apk ./sys_temp/priv-app/
umount sys_temp
rmdir sys_temp

ไฟล์ APK สามารถดึงจากอุปกรณ์ Android จริงที่ใช้ Google Apps ได้โดยใช้adb pullคำสั่ง

[เพื่อให้ได้เส้นทางที่แน่นอนของ apks เราสามารถใช้คำสั่ง pm list packages -fภายใน adb shell]


ฉันไม่มั่นใจว่ามีบริการ "ลึกลับ" บางอย่างทำงานอยู่ .. แต่มีข้อผิดพลาดในโปรแกรมจำลอง (หรืออิมเมจระบบ) ที่ดูเหมือนว่าจะได้รับการแก้ไขแล้วซึ่งอนุญาตให้มีสำเนาหลายชุดapkอยู่ใน/systemไดเรกทอรี ฉันสังเกตเห็นว่าการดันแต่ละไฟล์apkไปยังโฟลเดอร์ที่ถูกต้องไม่ได้ส่งผลให้เกิดข้อผิดพลาดในการเขียน ฉันได้อัปเดตคำตอบของฉัน - คุณลองได้ไหมว่าตอนนี้เหมาะกับคุณไหม
Dev-iL

ฉันประสบปัญหาเดียวกันไม่สามารถส่งผ่านระบบไฟล์แบบอ่านอย่างเดียวเมื่อผลักดัน apks ฉันคิดว่าวิธีเดียวคือแก้ไขอิมเมจระบบ emulator android แล้วจะแก้ไขภาพ android จาก windows 8 ได้อย่างไรขอบคุณ ฉันต้องการติดตั้งบริการ Google Play ล่าสุดและเกม Google Play บนโปรแกรมจำลอง Android 6.0
noname.cs

2
ฉันได้ติดตั้ง linux และคัดลอก apks เป็น 6.0 system.img ด้วย google apis แต่เมื่อฉันสร้างโปรแกรมจำลองใหม่มันไม่มีบริการ Google Play หรือ Google Play Store ฉันจะลองอีกครั้งด้วยรอมที่ไม่ใช่ google apis
noname.cs

0

เพียงแค่ต้องการเพิ่มโซลูชันอื่นสำหรับผู้ใช้ React Native ที่ต้องการแอป Expo

  1. ติดตั้งแอปExpo
  2. เปิดโครงการของคุณ
  3. คลิกอุปกรณ์ -> เปิดบน Android - ในขั้นตอนนี้ Expo จะติดตั้งแอป expo android และคุณจะสามารถเปิดได้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.