การให้สิทธิ์ Google Maps Android API v2 ล้มเหลว


95

ขั้นตอนของฉัน:

  • ได้รับรหัส SHA1 จาก debug.keystore
  • สร้างแอปในคอนโซล google apis
  • เปิดใช้งาน google map api v2.0
  • อินพุต SHA1; my.package.name
  • รับคีย์ API
  • สร้างไฟล์ AndroidManifest:

        <permission
                android:name="my.package.name.permission.MAPS_RECEIVE"
                android:protectionLevel="signature"/>
    
        <uses-permission android:name="my.package.name.permission.MAPS_RECEIVE"/>
    
        <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15"/>
    
        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
        <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    
        <uses-feature android:glEsVersion="0x00020000" android:required="true"/>
    
        <application android:label="@string/app_name" android:icon="@drawable/ic_launcher" android:hardwareAccelerated="true">
    
            <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="MY_API_KEY_HERE" />
    
            <activity android:name="MyActivity"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN"/>
                    <category android:name="android.intent.category.LAUNCHER"/>
                </intent-filter>
            </activity>
        </application>
    </manifest>
    
  • เค้าโครงที่สร้างขึ้น

  • ใส่ "google-play-services.jar" ใน libs

หลังจากรวบรวมฉันมีปัญหา:

  ERROR/AndroidRuntime(10182): FATAL EXCEPTION: main
                java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable
                at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)
                at com.google.android.gms.maps.MapFragment.onInflate(Unknown Source)
                at android.app.Activity.onCreateView(Activity.java:4716)
                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
                at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
                at android.app.Activity.setContentView(Activity.java:1881)
                at com.example.gm2.MyActivity.onCreate(MyActivity.java:16)
                at android.app.Activity.performCreate(Activity.java:5104)
                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
                at android.app.ActivityThread.access$600(ActivityThread.java:141)
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
                at android.os.Handler.dispatchMessage(Handler.java:99)
                at android.os.Looper.loop(Looper.java:137)
                at android.app.ActivityThread.main(ActivityThread.java:5039)
                at java.lang.reflect.Method.invokeNative(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:511)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
                at dalvik.system.NativeStart.main(Native Method)

หลังจากนั้นฉันได้เปลี่ยนเค้าโครงเป็น:

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:id="@+id/map"
             android:layout_width="match_parent"
             android:layout_height="match_parent" />

และเปลี่ยน MyActivity เป็น

  super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    FragmentManager manager = getFragmentManager();
    FragmentTransaction transaction = manager.beginTransaction();

    transaction.add(R.id.map, MapFragment.newInstance());           
    transaction.commit();

เป็นผลให้แอปพลิเคชันเริ่มทำงาน แต่ฉันไม่เห็นแผนที่

บันทึกคอนโซล:

ERROR/Google Maps Android API(10369): Authorization failure.

1
พระเจ้าช่วย! ฉันมักจะไม่พบข้อผิดพลาด R $ stylable class ตอนนี้ฉันเปลี่ยนรหัสเป็นวิธีการทางโปรแกรมของคุณเพื่อใช้ MapFragment และใช้งานได้! ขอบคุณ! แต่คุณต้องสร้างคีย์ดังที่อธิบายไว้ด้านล่าง
Informatic0re

คำตอบ:


105

ขั้นตอน :

  • เพื่อให้แน่ใจว่าอุปกรณ์มี APK ของบริการ Google Play
  • เพื่อติดตั้งบริการ Google Play rev. มากกว่า 2

ป้อนคำอธิบายภาพที่นี่

  • สร้างโครงการได้ที่https://code.google.com/apis/console/
  • เพื่อเปิดใช้งาน "Google Maps Android API v2" ป้อนคำอธิบายภาพที่นี่
  • เพื่อลงทะเบียน SHA1 ในโปรเจ็กต์ ( ตอนนี้คุณต้องเขียน SHA1; your.app.package.name ) ที่คอนโซล API และรับคีย์ API
  • เพื่อคัดลอกไดเร็กทอรี ANDROID_SDK_DIR / extras / google / google_play_services / libproject / google-play-services_lib ไปยังรูทของโปรเจ็กต์ของคุณ
  • เพื่อเพิ่มบรรทัดถัดไปใน YOUR_PROJECT / project.properties

android.library.reference.1=google-play-services_lib

  • เพื่อเพิ่มบรรทัดถัดไปในไฟล์ YOUR_PROJECT/proguard-project.txt

.

-keep class * extends java.util.ListResourceBundle {

   protected Object[][] getContents();

}

ตอนนี้คุณพร้อมที่จะสร้างแอป Google Map ของคุณเองโดยใช้ Google Map APIs V2 สำหรับ Android

หากคุณสร้างแอปพลิเคชันด้วย min SDK = 8 โปรดใช้ไลบรารีการสนับสนุน android v4 + SupportMapFragment แทน MapFragment


คำแนะนำเหล่านี้ไม่ได้ทำงานทั้งหมด ฉันต้องการคัดลอก proguard.cfg จากแอปพลิเคชันตัวอย่างแผนที่ API จากนั้นมันก็เริ่มทำงาน
Yoel Gluschnaider

นอกจากนี้ฉันสังเกตเห็นว่า Signature Algorithm ต้องเป็น SHA1 พร้อม RSA และไม่ใช่ SHA256 กับ RSA (ค่าเริ่มต้นที่สร้างโดย eclipse สำหรับคีย์การดีบัก)
Yoel Gluschnaider

1
ขอบคุณ! to enable "Google Maps Android API v2" - ขั้นตอนแก้ไขปัญหาของฉัน
โยฮัน

1
@YoelGluschnaider: ฉันจะเปลี่ยนอัลกอริทึมเริ่มต้นจาก SHA256withRSA เป็น SHA1withRSA ได้อย่างไร
Santhosh

ขอบคุณ! ฉันได้รับการบันทึกโดยความคิดของคุณให้ใช้ SupportMapFragment
Ilya Kogan

35

ตรวจสอบโพสต์นี้ด้วย: โค้ดตัวอย่าง Google Map Android Api V2 ไม่ทำงานหากคุณแน่ใจว่าทำถูกต้องครบถ้วนแล้วทำตามคำตอบที่สองการรับรองความถูกต้องจะถูกแคชไว้ที่ใดที่หนึ่งลองถอนการติดตั้งแอปพลิเคชันด้วยตนเอง (เช่นเดียวกับที่คุณทำกับ a โปรแกรมปกติ) จากนั้น "เรียกใช้" อีกครั้งโครงการ


6
ไม่อยากจะเชื่อเลยว่าเพิ่งได้ผล ขอบคุณ @Alejandro del Rio :)
phil

ฉันเดิมพันเช่นเดียวกับฉัน 90% ของคนที่นี่ต้องการคำตอบนี้จริงๆไม่ใช่คำตอบที่เลือก (แม้ว่าจะมีประโยชน์เช่นกัน)
Kalisky

ในกรณีของฉันแคช (?) ได้รับการอัพเดตในขณะที่ฉันกำลังอ่าน Stackoverflow พร้อมกับข้อความแสดงข้อผิดพลาดในการตรวจสอบสิทธิ์ในบันทึก แอปกำลังทำงานด้วยหน้าจอ while หลังจากนั้นไม่กี่นาทีแผนที่ก็โหลดและไม่มีข้อผิดพลาดในการตรวจสอบสิทธิ์ ฉันเดาว่าการติดตั้งใหม่ก็น่าจะทำได้เช่นกัน
จอห์น

2
สำหรับผู้อ่านในอนาคต. ลบbinและgen. ล้างสร้างใหม่และข้อมูลรับรองที่แคชไว้จะได้รับการต่ออายุ
George Daramouskas

20

เนื่องจากฉันเสียเวลาไปมากในการทำให้ API ทำงานฉันจะพยายามตรวจสอบความถูกต้องทีละขั้นตอนสำหรับ Map API v2:

ขั้นตอนที่ 1: สมัครคีย์ API ของคุณ

หากคุณไม่คุ้นเคยกับคอนโซล Google API โปรดอ่านคำตอบที่ดีของ Rusfearuth ด้านบน

ขั้นตอนที่ 2: ตรวจสอบ SHA Hash ของคุณ (ในกรณีนี้ฉันใช้รหัสดีบักของ eclipse):

บนเครื่อง Windows ไปที่ไดเร็กทอรีผู้ใช้ของคุณบนพรอมต์คำสั่ง:

C:\Users\you>keytool -list -alias androiddebugkey -keystore .android\debug.keyst
ore -storepass android -keypass android

คุณจะได้รับสิ่งที่ต้องการ:

androiddebugkey, 15.10.2012, PrivateKeyEntry,
Zertifikat-Fingerprint (SHA1): 66:XX:47:XX:1E:XX:FE:XX:DE:XX:EF:XX:98:XX:83:XX:9A:XX:23:A6

จากนั้นดูชื่อแพ็คเกจของกิจกรรมแผนที่เช่น com.example.mypackagename

คุณรวมสิ่งนี้และตรวจสอบกับการตั้งค่าของคุณในคอนโซล Google API:

66:XX:47:XX:1E:XX:FE:XX:DE:XX:EF:XX:98:XX:83:XX:9A:XX:23:A6;com.example.mypackagename

ที่ที่คุณจะได้รับคีย์ API:

AZzaSyDhkhNotUseFullKey49ylKD2bw1HM

ขั้นตอนที่ 3 แสดงข้อมูลเมตา

ตรวจสอบว่ามีข้อมูลเมตาและมีคีย์ที่ถูกต้องหรือไม่ หากคุณเปิดตัวแอปคุณจะต้องมีคีย์อื่น

    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="AZzaSyDhkhNotUseFullKey49ylKD2bw1HM" />
    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

ขั้นตอนที่ 4. คุณสมบัติที่สำแดง:

คุณต้องมีรายการนี้เนื่องจาก API แผนที่ต้องการการสนับสนุนด้านกราฟ:

<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />

ไม่ต้องกังวลอุปกรณ์ 99.7% รองรับสิ่งนี้

ขั้นตอนที่ 5. ไลบรารี Manifest:

เพิ่มห้องสมุด Google

    <uses-library
        android:name="com.google.android.maps"
        android:required="false" /> // This is required if you want your app to start in the emulator. I set it to false also if map is not an essential part of the application.

ขั้นตอนที่ 6. แสดงสิทธิ์:

ตรวจสอบชื่อแพ็กเกจสองครั้ง: com.example.yourpackage

<permission
    android:name="com.example.yourpackage.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />
<uses-permission android:name="com.example.yourpackage.permission.MAPS_RECEIVE" />

เพิ่มสิทธิ์ต่อไปนี้:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

สิทธิ์ต่อไปนี้เป็นทางเลือกและไม่จำเป็นหากคุณเพียงแค่แสดงแผนที่ พยายามที่จะไม่ใช้พวกเขา

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

ขั้นตอนที่ 7. รวมส่วนของแผนที่ไว้ในเค้าโครงของคุณ:

<fragment
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    class="com.google.android.gms.maps.SupportMapFragment"
    map:cameraTargetLat="47.621120"
    map:cameraTargetLng="-122.349594"
    map:cameraZoom="15" />

หากคุณเผยแพร่เป็นเวอร์ชัน Android 2.x คุณต้องเพิ่มการสนับสนุนในกิจกรรมของคุณ:

import android.support.v4.app.FragmentActivity;

สำหรับแผนที่: รายการที่ต้องทำงาน ได้แก่

xmlns:map="http://schemas.android.com/apk/res-auto"

ในรูปแบบกิจกรรมของคุณ (เช่น LinearLayout)

ในกรณีของฉันฉันต้องทำความสะอาดโปรเจ็กต์ทุกครั้งที่เปลี่ยนบางสิ่งในเค้าโครง น่าจะเป็นจุดบกพร่อง

ขั้นตอนที่ 8: ใช้ Eclipse - Project - Clean

สนุก!


ฉันกำลังทำตามขั้นตอนของคุณ แต่เกิดข้อผิดพลาดในคีย์ api วิธีแก้ไขใด ๆ
Hemantvc

1
+1 สำหรับ <meta-data android: name = "com.google.android.maps.v2.API_KEY" android: value = "AZzaSyDhkhNotUseFullKey49ylKD2bw1HM" />
The-null-Pointer-

16

คุณต้องใช้โปรเจ็กต์ไลบรารีที่อยู่ที่: ANDROID-SDK-DIRECTORY / extras / google / google_play_services / libproject

วิธีนี้จะแก้ไขปัญหาแรกของคุณ

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


ฉันคัดลอกข้อมูลเพิ่มเติม / google / google_play_services / libproject / libs / google-play-services.jar ไปยัง MY_PROJECT / libs
Rusfearuth

นั่นยังไม่ดีพอ คุณต้องใช้ไลบรารีทั้งโครงการเนื่องจากมีทรัพยากรมากมาย ใน Eclipse คุณสามารถอิมพอร์ตโปรเจ็กต์ Android ใหม่และชี้ไปที่ไดเร็กทอรี libproject จากนั้นในคุณสมบัติของโปรเจ็กต์ของคุณเองให้เพิ่มการอ้างอิงเข้าไป
Scott Kennedy

ฉันไม่ใช้ Eclipse (ใช้ Idea)
Rusfearuth

ฉันไม่แน่ใจว่าโครงการห้องสมุดทำงานอย่างไรใน Idea แต่blogs.jetbrains.com/idea/2010/09/…ควรมีข้อมูลนั้น
Scott Kennedy

17
ฉันพบว่าทำไมมันไม่ทำงาน ฉันเปิด Google Map API v2 แทนบริการ Google Map Android API v2 = (Shame on me ....
Rusfearuth

5

วันนี้ฉันต้องเผชิญกับปัญหานี้ ฉันใช้ Android Studio 2.1.3, windows 10 ในขณะที่การดีบักมันใช้งานได้ดี แต่ถ้าฉันอัปเดตเป็นโหมดเผยแพร่มันจะไม่ทำงาน ฉันล้างเงื่อนไขโปรการ์ดทั้งหมดอัปเดตแล้ว แต่นี่ไม่ใช่วิธีแก้ปัญหา

การแก้ปัญหาเกี่ยวข้องกับโครงสร้างโครงการ ไฟล์ google_maps_api.xml แตกต่างกันระหว่าง app \ src \ debug \ res และ app \ src \ release \ res ฉันทำการคัดลอกวางด้วยตนเองจากโฟลเดอร์ debug ไปยัง release

ตอนนี้ใช้งานได้แล้ว


4

ฉันทำตามคำแนะนำของ Gunnar Bernstein ที่กล่าวถึงข้างต้นแล้ว แต่ก็ยังไม่ได้ผล อย่างไรก็ตามมันเริ่มทำงานหลังจากที่ฉันทำตามคำแนะนำของเขาและสิ่งต่อไปนี้:

  1. ฉันสร้าง MapActivity ใหม่โดยใช้รายการตัวเลือกคลิกขวาของ Android Studio: ใหม่ -> Google -> กิจกรรม Google Maps

  2. จากนั้นฉันก็เปิดไฟล์google_maps_api.xmlที่สร้างขึ้นโดยอัตโนมัติและใช้ลิงก์ที่ระบุเพื่อสร้างคีย์ API ใหม่ ฉันทำตามขั้นตอนทั้งหมดแล้วและบันทึกคีย์ใหม่ภายใต้โปรเจ็กต์ปัจจุบันของฉัน จากนั้นฉันก็ลบคีย์ API ที่ลงทะเบียนเก่าของฉันออกเนื่องจากไม่จำเป็นต้องใช้อีกต่อไป

  3. ภายใต้ไฟล์ Manifest ฉันแทนที่ค่า API KEY เก่าด้วยทางลัดสตริงที่สร้างโดยไฟล์ XML ใหม่นี้: android:value="@string/google_maps_key"แทนที่จะระบุ KEY โดยตรง

  4. สุดท้ายลบ MapActivity ใหม่ แต่เก็บไฟล์ xml ที่สร้างขึ้นในกระบวนการนั้น

หมายเหตุ: การสร้างคีย์ API ด้วยวิธีนี้คอลัมน์ข้อ จำกัด ภายใต้ข้อมูลรับรองตอนนี้ระบุว่า "แอป Android" ก่อนหน้านี้เมื่อไม่ได้ผลคอลัมน์ระบุว่า "แอป Android, 1 API" หรืออะไรที่คล้ายกัน ฉันไม่รู้ว่าสิ่งนี้สร้างความแตกต่างหรือไม่ หมายเหตุ: ไม่นั่นหมายความว่าฉันไม่ได้เลือก API เฉพาะสำหรับคีย์ API นี้ (คอนโซล -> คีย์ API -> ข้อ จำกัด คีย์ -> ข้อ จำกัด API)

หมายเหตุ: ดูเหมือนว่าแท็ก meta-data ในไฟล์ Manifest:

android:name="com.google.android.maps.v2.API_KEY

ถูกแทนที่ด้วย:

android:name="com.google.android.geo.API_KEY"

ฉันเดาว่าทั้งสองอย่างสามารถใช้ได้ แต่จะดีกว่าตั้งแต่เริ่มใช้อย่างหลัง

หมายเหตุ: ค่าที่ระบุในไฟล์ build.gradle ภายใต้android -> defaultConfig -> applicationIdต้องตรงกับข้อความชื่อแพ็กเกจภายใต้หน้าข้อมูลรับรอง


นี่คือสิ่งที่เกิดขึ้นกับฉันและโซลูชันนี้แก้ไขคำเตือนจากคอนโซล โครงสร้างไอออนิกเปลี่ยนไปอย่างใด
นักบินอวกาศ

หลังจากค้นหาเป็นเวลา 8 ชั่วโมงฉันมองย้อนกลับไปและใช้วิธีนี้ Solved!!!
meyasir

3

เพียงเพิ่มสิ่งนี้ลงในไฟล์รายการของคุณ:

**<uses-library android:name="com.google.android.maps" />**

ตัวอย่างเช่น...

<application
    android:icon="@drawable/icon"
    android:label="@string/app_name" >
    <uses-library android:name="com.google.android.maps" />

    <activity
        android:name=".California"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

และโปรดอัปเดตบริการ google play ของคุณ lib ... ไปที่ Window -> Android sdk manager-> อัปเดตบริการ Google Play ... ติดตั้ง.. ลบอันเก่าและเก็บอันนี้ไว้ นำสิ่งนี้จาก ANDROID-SDK-DIRECTORY / extras / google / google_play_services /

ขอบคุณ.. กรุณาโหวต


3

ฉันจะแก้ไขข้อผิดพลาดนี้โดยการตรวจสอบชื่อแพคเกจในที่ประจักษ์และ build.gradleapp

ในรายการ:

ฉันใช้ชื่อแพ็คเกจเป็น:

com.app.triapp

ใน app build.gradle:

 defaultConfig {

        applicationId "com.app.live"
    }

หลังจากเปลี่ยนเป็นcom.app.triappในbuild.gradleแก้ไขปัญหาของฉัน


1
ขอบคุณมาก. คุณประหยัดเวลาได้มาก
YeeKhin

1
Bro ที่ยอดเยี่ยม ฉันมีทุกอย่างเรียบร้อยแทนที่จะเป็นแบบนี้
Mubashar Javed

2

ฉันกำลังย้ายข้อมูลจาก V1 เป็น V2 ของ Google Maps ฉันได้รับความล้มเหลวนี้ขณะพยายามเรียกใช้แอปผ่าน Eclipse สาเหตุหลักสำหรับฉันคือใช้ที่เก็บคีย์ใบรับรองรีลีสแทนที่จะเป็นที่เก็บคีย์การดีบัก Android ซึ่งเป็นสิ่งที่จะใช้เมื่อคุณเรียกใช้ผ่าน Eclipse คำสั่งต่อไปนี้ (OSX / Linux) จะทำให้คุณได้รับคีย์ SHA1 ของที่เก็บคีย์การดีบัก:

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

หากคุณใช้ Windows 7 แทนคุณจะใช้คำสั่งนี้:

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

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


1

"java.lang.NoClassDefFoundError: com.google.android.gms.R $ styleable"

มีข้อผิดพลาดนี้เช่นกันคุณต้อง: ไฟล์ -> นำเข้า -> โค้ด Android ที่มีอยู่ลงในพื้นที่ทำงาน -> เรียกดู -> Android sdks -> พิเศษ -> google -> google_play_services -> lib_project -> google_play_services_lib และตกลง ตรวจสอบโครงการและเสร็จสิ้น

โครงการไปที่ Package Explorer ตอนนี้ไปที่โครงการของคุณ (พร้อมข้อผิดพลาด) -> คุณสมบัติ -> Android และในไลบรารีคลิกเพิ่ม ... google_play_services_lib ควรอยู่ที่นั่น! เพิ่มแล้วลองอีกครั้ง :)


1

ฉันมีปัญหาเดียวกัน แต่ปรากฎว่าเป็นเพราะฉันสร้างคีย์แผนที่ API สองอันที่แตกต่างกันด้วยลายนิ้วมือ SHA-1 เดียวกันที่มีชื่อแพ็คเกจใกล้เคียงกันcom.bla.blaและอีกcom.bla.bla.somethingอัน


0

ฉันมีปัญหาเดียวกันแน่นอนและฉันต้องการตั้งค่า SDK สำหรับโครงการไลบรารีของ MapsApiV2 เป็น Android 2.3.3 (API lvl 10)


ฉันจำสิ่งนี้ไม่ได้
Informatic0re

0

ฉันมีปัญหาเดียวกัน หลังจากใช้ googling ประมาณสองชั่วโมงลองใหม่สร้างคีย์ API ใหม่หลาย ๆ ครั้งและอื่น ๆ ฉันพบว่าฉันเปิดใช้บริการที่ไม่ถูกต้องใน Google APis Console ฉันเปิดใช้งานGoogle Maps API v2 บริการแต่สำหรับ Android Apps คุณต้องใช้Google Maps Android API v2 หลังจากเปิดใช้งานบริการที่ถูกต้องทั้งหมดก็เริ่มทำงาน


0

ECLIPSE ของคุณอาจเปลี่ยนคีย์ SHA1 ดังนั้นคุณต้องสร้างคีย์ Google ของคุณใหม่ด้วยคีย์ SHA1 ใหม่ที่นี่: https://console.developers.google.com/project/watchful-net-796/apiui/credential หลังจากนั้นให้คัดลอกคีย์ใหม่ ลงในไฟล์ Manifest และโหลดหน้า Google นี้ซ้ำบางครั้งและคีย์ของคุณจะได้รับการอัปเดตสร้างโครงการใหม่ก็จะใช้งานได้ P / S: สำหรับข้อผิดพลาดของฉันฉันลบโฟลเดอร์. android ดังนั้น eclipse regen SHA1


0

ฉันทำตามขั้นตอนเดียวกันกับที่ให้ไว้ใน Google Doc แต่ฉันได้รับข้อผิดพลาดเดียวกัน ต่อมาฉันรู้ว่าฉันกำลังลงนามแอปด้วย app.keystore ของฉันและคีย์ SHA ที่ฉันใช้เพื่อสร้างคีย์ API คือการดีบัก

ดังนั้นฉันจึงลบออกsigningConfig signingConfig.genericจากโดยbuild.gradleไฟล์ไฟล์และแผนที่ของฉันก็เริ่มทำงานได้ดี

หวังว่านี่จะช่วยใครบางคนได้


0

ฉันประสบปัญหาเดียวกัน

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


0

สำหรับฉันแล้วทุกอย่างทำงานได้ทั้งในโปรแกรมจำลองและบนอุปกรณ์จริง

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

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

ดังนั้นหากคุณตั้งค่าระบบใหม่ให้ตรวจสอบลายนิ้วมืออีกครั้ง!


0
  • ตรวจสอบให้แน่ใจว่าSDK for Androidเปิดใช้Maps ในคอนโซล API
  • นอกจากนี้คุณอาจต้องเพิ่มชื่อแพ็กเกจและลายนิ้วมือใบรับรองการลงนาม SHA-1 เพื่อ จำกัด การใช้งานเพื่อให้คีย์ของคุณเปิดใช้งานได้อย่างสมบูรณ์

ป้อนคำอธิบายภาพที่นี่

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