2013-01-09 46 views
5

Tôi đã làm thủ tục để thêm bản đồ google api nhưng tôi nhận được lỗi này. Xin lỗi vì ngôn ngữ xấu.Google maps Android chỉ màn hình trắng được hiển thị

09 12:20:55.359: W/dalvikvm(5918): Unable to resolve superclass of Lmaps/a/du; (406) 
01-09 12:20:55.359: W/dalvikvm(5918): Link of class 'Lmaps/a/du;' failed 
01-09 12:20:55.359: W/dalvikvm(5918): Unable to resolve superclass of Lmaps/a/ej; (2358) 
01-09 12:20:55.359: W/dalvikvm(5918): Link of class 'Lmaps/a/ej;' failed 
01-09 12:20:55.359: W/dalvikvm(5918): Unable to resolve superclass of Lmaps/j/k; (2374) 
01-09 12:20:55.359: W/dalvikvm(5918): Link of class 'Lmaps/j/k;' failed 
01-09 12:20:55.359: E/dalvikvm(5918): Could not find class 'maps.j.k', referenced from method maps.y.ae.a 
01-09 12:20:55.359: W/dalvikvm(5918): VFY: unable to resolve new-instance 3566 (Lmaps/j/k;) in Lmaps/y/ae; 

đây của nó manifest.xml

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-permission android:name="com.comparto.piso.permission.MAPS_RECEIVE" /> 
<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" /> 

<permission 
     android:name="com.comparto.piso.permission.MAPS_RECEIVE" 
     android:protectionLevel="signature" /> 

     <application 
       ........ > 
      <uses-library android:name="com.google.android.maps" /> 
    <meta-data 
      android:name="com.google.android.maps.v2.API_KEY" 
      android:value="api key" /> 
    ...... 
    ..... 

Trong mã java i kéo dài FragmentActivity và đây mã onCreate của nó

GooglePlayServicesUtil 
       .isGooglePlayServicesAvailable(getApplicationContext()); 

     GoogleMap map = ((SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map)).getMap(); 
     if (map != null) { 
      map.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
     } 

đây của nó bố trí xml

<fragment 
       xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@+id/map" 
       android:layout_width="fill_parent" 
       android:layout_height="300px" 
       class="com.google.android.gms.maps.SupportMapFragment" /> 
+0

obfuscation của bạn là không hoạt động, tôi đoán là – njzk2

+1

Vui lòng chỉnh sửa và thêm một phần có liên quan của mã của bạn.Đây không phải là cách để đặt câu hỏi ngay cả khi bạn không biết tiếng Anh. – Nezam

+0

ok, tôi sẽ chỉnh sửa để thêm mã khác ngay bây giờ. xin lỗi –

Trả lời

1

Thông báo lỗi đó thường xảy ra với chúng tôi rs khi chạy trên thiết bị không có API Google Play khả dụng. Bạn gọi số isGooglePlayServicesAvailable(), nhưng bạn không kiểm tra giá trị trả lại. Bạn nên kiểm tra để chắc chắn rằng nó trả về ConnectionResult.SUCCESS trước khi tiếp tục. Trong trường hợp của một số mã lỗi khác, bạn có thể có họ nhắc nâng cấp/cài đặt qua getErrorDialog(), giống như -

int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); 
switch (resultCode) { 
    case ConnectionResult.SUCCESS: // proceed 
     break; 
    case ConnectionResult.SERVICE_MISSING: 
    case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED: 
    case ConnectionResult.SERVICE_DISABLED: 
      Dialog dialog = GooglePlayServicesUtil.getErrorDialog(resultCode, this, 1); 
      dialog.show(); 
} 

Theo Google, Google Play dịch vụ API của require 'thiết bị phát triển thể chất, vì vậy họ không chính thức hỗ trợ trên các trình giả lập. Vì vậy, nếu bạn đang chạy trên một trình giả lập, nó gần như chắc chắn bạn đang thiếu các dịch vụ cần thiết. Mọi người báo cáo nhận được nó để làm việc trong giả lập, nhưng tôi đã không cố gắng bản thân mình. Bạn có thể xem hơn câu trả lời trong this post, nếu bạn muốn xem cài đặt Google Play trên trình mô phỏng.

+0

Tôi đang chạy thử nghiệm trong một thiết bị thực sự và nhận được thành công. Lỗi trong logcat là: Không thể tìm thấy lớp 'maps.j.k', được tham chiếu từ phương thức maps.y.ae.a –

+0

OK. Bạn có [Google Maps] (https://play.google.com/store/apps/details?id=com.google.android.apps.maps&hl=en) được cài đặt và cập nhật không? Nhìn vào đầu dấu vết nhật ký của bạn và xem liệu bạn có thấy một cái gì đó như 'E/API Android của Google Maps (14657): ứng dụng Google Maps bị thiếu.' – iagreen

+0

Xem [câu trả lời này] (http://stackoverflow.com/a/ 13789869) để biết cách kiểm tra theo chương trình trong ứng dụng của bạn. – iagreen

0

Nếu bạn sử dụng "class =" com.google.android.gms.maps.SupportMapFragment" trong xml bố trí của bạn, bây giờ bạn đang sử dụng Android của bạn: minSdkVersion dưới Android 3.0 hoặc thấp hơn trong manifest.xml bạn

.

Và sau đó xem trang web được liên kết của tôi bên dưới, điều này rất hữu ích để bạn hiểu những gì bạn nên cài đặt và thiết lập trước khi chạy bản đồ Google trên thiết bị của bạn. bản đồ trên điện thoại.

My linked site ===> just Click here

+0

Tôi tải xuống ví dụ của bạn và có cùng sự cố. tôi chạy dự án trong 2 thiết bị khác nhau với cùng kết quả. xin lỗi vì ngôn ngữ xấu và cảm ơn câu trả lời của bạn –

+0

Bạn đã cố gắng nhập khóa API của mình vào của tệp Manifest.xml chưa? – BBonDoo

5

Tất cả các "Không thể giải quyết lớp cha xxxx "và" Liên kết của lớp xxxx không thành công "từ Dalvik trong logcat là bình thường nếu thiết bị của bạn không ở cùng cấp API với mức được sử dụng bởi thư viện Google Maps.

Bạn nên kiểm tra xem bạn đang nhận được một thất bại uỷ quyền thay vì bằng cách sử dụng lệnh này:

adb logcat | grep Maps 

Nếu bạn thấy một cái gì đó như thế này:

E/Google Maps Android API(): Authorization failure. 

Sau đó, nó có nghĩa là bạn không được cung cấp khóa API chính xác trong tệp kê khai của bạn. Hãy kiểm tra lại trong số Google API Console của bạn (trong phần Truy cập API) cho dù bạn đã thêm đúng cặp dấu vân tay và tên gói là described in the guide.

0

Có lẽ khóa SHA1 của nhật thực của bạn đã bị thay đổi (EX: Có thể bạn đã xóa thư mục .android trong thư mục chính của cửa sổ) vì vậy đó là lý do tại sao lỗi xác thực. Bạn phải xóa khóa của bạn và tạo khóa mới với SHA1 mới của nhật thực. enter image description here

Regen khóa mới tại đây và tải lại trang này trong vài phút, nó sẽ cập nhật khóa mới: https://console.developers.google.com/project/watchful-net-796/apiui/credential

Ghi! Sau khi tất cả, bạn phải sao chép chìa khóa mới để biểu hiện và xây dựng lại dự án của bạn. Chúc may mắn!

0

bạn có api thiếu chính

<meta-data 
      android:name="com.google.android.maps.v2.API_KEY" 
      android:value="api key" /> 

nhập API_KEY trong tham số giá trị

google playService phiên bản cũng là mất tích. Thêm

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

để manifest bên <application thẻ

1

tôi đã cùng một vấn đề màn hình trắng sau một resaerch chút tôi tìm ra tôi đã quên để cho phép bản đồ API từ nhà phát triển giao diện điều khiển như trong pic dưới đây: -

tôi hy vọng bạn có thể có cùng một vấn đề và nó sẽ giúp: -

Map api enable on console

Các vấn đề liên quan