2013-04-09 22 views
13

Tôi đã thử bản trình diễn hiển thị bản đồ google v2 trong android.

Mã java là,

package com.example.gpslocator; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
}  
} 

Mã Xml là,

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
> 

<fragment 
     android:id="@+id/map" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:name="com.google.android.gms.maps.MapFragment"/> 
</LinearLayout> 

tôi đã thêm khóa API trong manifest.xml,

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.gpslocator" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="3" 
    android:targetSdkVersion="17" /> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 
<!-- 
The following two permissions are not required to use 
Google Maps Android API v2, but are recommended. 
--> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

<permission 
    android:name="com.example.mapdemo.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature" /> 

<uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE" /> 

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

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.example.gpslocator.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

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

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

</manifest> 

Khi tôi cố gắng chạy của tôi Ứng dụng đóng đột ngột. Khi tôi gỡ lỗi, Nó cho tôi thấy lỗi, "java.lang.NoClassDefFoundError: com.google.android.gms.R $ styleable". Tôi đã thêm tệp google-play-services.jar vào ứng dụng của mình.

Các logcat là,

04-09 05:33:53.677: E/Trace(1053): error opening trace file: No such file or directory (2) 
04-09 05:33:53.807: W/ActivityThread(1053): Application com.example.gpslocator is waiting for the debugger on port 8100... 
04-09 05:33:53.878: I/System.out(1053): Sending WAIT chunk 
04-09 05:33:54.207: I/dalvikvm(1053): Debugger is active 
04-09 05:33:54.288: I/System.out(1053): Debugger has connected 
04-09 05:33:54.288: I/System.out(1053): waiting for debugger to settle... 
04-09 05:33:54.487: I/System.out(1053): waiting for debugger to settle... 
04-09 05:33:54.697: I/System.out(1053): waiting for debugger to settle... 
04-09 05:33:54.897: I/System.out(1053): waiting for debugger to settle... 
04-09 05:33:55.097: I/System.out(1053): waiting for debugger to settle... 
04-09 05:33:55.297: I/System.out(1053): waiting for debugger to settle... 
04-09 05:33:55.498: I/System.out(1053): waiting for debugger to settle... 
04-09 05:33:55.708: I/System.out(1053): waiting for debugger to settle... 
04-09 05:33:55.907: I/System.out(1053): waiting for debugger to settle... 
04-09 05:33:56.167: I/System.out(1053): waiting for debugger to settle... 
04-09 05:33:56.367: I/System.out(1053): debugger has settled (1344) 
04-09 05:34:06.097: W/dalvikvm(1053): VFY: unable to resolve static field 867 (MapAttrs) in Lcom/google/android/gms/R$styleable; 
04-09 05:34:06.097: D/dalvikvm(1053): VFY: replacing opcode 0x62 at 0x000e 
04-09 05:40:21.278: D/AndroidRuntime(1053): Shutting down VM 
04-09 05:40:21.278: W/dalvikvm(1053): threadid=1: thread exiting with uncaught exception (group=0x40a71930) 
04-09 05:40:21.398: E/AndroidRuntime(1053): FATAL EXCEPTION: main 
04-09 05:40:21.398: E/AndroidRuntime(1053): java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at com.google.android.gms.maps.MapFragment.onInflate(Unknown Source) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at android.app.Activity.onCreateView(Activity.java:4716) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at android.app.Activity.setContentView(Activity.java:1881) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at com.example.gpslocator.MainActivity.onCreate(MainActivity.java:12) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at android.app.Activity.performCreate(Activity.java:5104) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at android.app.ActivityThread.access$600(ActivityThread.java:141) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at android.os.Handler.dispatchMessage(Handler.java:99) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at android.os.Looper.loop(Looper.java:137) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at android.app.ActivityThread.main(ActivityThread.java:5041) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at java.lang.reflect.Method.invokeNative(Native Method) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at java.lang.reflect.Method.invoke(Method.java:511) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
04-09 05:40:21.398: E/AndroidRuntime(1053):  at dalvik.system.NativeStart.main(Native Method) 
04-09 05:40:26.487: I/Process(1053): Sending signal. PID: 1053 SIG: 9 

Trong bất động sản -> Android ->

enter image description here

Hãy bất kỳ một giúp tôi ra ngoài. Tôi có thiếu tham chiếu không?

Trả lời

29

Xem câu trả lời ở đây:
Google Maps Android API v2 - Sample Code crashes
Trong khi câu hỏi liệt kê một ngoại lệ khác nhau, câu trả lời đặc biệt đề cập đến vấn đề chính xác của bạn.

Cụ thể, điều quan trọng là phải nhập khẩu google-play-services_lib như một dự án :
Chọn File > Import > Android > Existing Android Code Into Workspace và click Next.
Chọn Duyệt qua ..., nhập [android-sdk-folder]/extras/google/google_play_services/libproject/google-play-services_lib và nhấp vào Hoàn tất.
(Xem https://developers.google.com/maps/documentation/android/intro dưới "Mã mẫu")
Sau đó làm theo các hướng dẫn từ các câu trả lời liên quan:

  • Import the actual source for the "google-play-services_lib" project and link it as an >Android library.
    • Do this through Project -> Properties -> Android -> Library, Add -> google-play-services_lib (you can right click on your project and choose Properties, then select Android).
    • Do not add it as a dependent Project through the "Java Build Path" for your project, that didn't work for me.
+0

Đã thử như vậy. Điều đó không giải quyết được vấn đề. Tôi đã thêm tất cả các tài liệu tham khảo, nhưng, không thể nhận được giải pháp .... – Mahe

+0

Tôi sẽ cố gắng xem liệu tôi có thể tạo lại lỗi của bạn hay không. – Alexander

+0

Không, không thể làm cho nó thất bại như vậy. Bạn nói rằng bạn đã thêm 'google-play-services.jar' - bạn đã thử thay vì làm" thuộc tính dự án-> android-> thư viện "rồi thêm dự án' google-play-services_lib'? – Alexander

6

Kiểm tra AndroidManifest.xml tập tin của dự án google-play-services_lib của bạn. Nên là:

package="com.google.android.gms" 
+1

Tôi nghĩ rằng sẽ luôn luôn xảy ra nếu bạn nhập Dịch vụ của Google Play Lib? –

+0

Tác phẩm này dành cho tôi – Siddharth

0

Đường dẫn tập tin vào dự án google-play-services_lib phải có chỉ [A-Z,a-z] không ÄÖÜ. Tôi đã chuyển nó đến D:\google-play-services_lib\ so với nhập nó mới và nó hoạt động!

Xin lỗi vì tôi tiếng Anh ;-)

1

Khi bạn nhập google-play-services_lib, kiểm tra "sao chép dự án vào không gian làm việc". Nó làm việc cho tôi!

1

Tôi đã gặp sự cố tương tự này và tôi có thể giải quyết vấn đề bằng cách nhấp chuột phải vào dự án google-play-services_lib và làm mới. Đối với một số lý do dự án không được đồng bộ hóa với Eclipse đã gây ra lỗi.

+0

Làm việc cho tôi cũng vậy – Wayneio

0

nhập cả google-play-services_lib & dự án demo vào không gian làm việc; đối phó với android-support-v4.jar vào thư mục "libs" trong dự án demo; và sau đó: thuộc tính dự án-> android-> thư viện "và sau đó thêm google-play-services_lib

0

Nhìn vào các bước của John Oleynik: www.stackoverflow.com/a/15709686/20146. Điều đó phù hợp với tôi.

0

Khi bạn đã nhập dự án google-play-services_lib vào IDE của mình, đừng quên kiểm tra thuộc tính của nó. Google-play-services_lib sẽ được tạo bằng cùng phiên bản SDK Android mà bạn sử dụng cho dự án của mình. dự án của bạn và google-play-services đều được xây dựng với Android 4.4.2 Sau đó bạn sẽ thấy rằng lib được xây dựng chính xác. est.xml bên trong các thẻ <application> ... </application>:

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

Tôi có cùng một vấn đề.

Nhưng gì tôi đã làm là tôi đã sử dụng com.google.android.gms Version luật này 3265130

Thay vì sử dụng com.google.android.gms Version Mã 4.452.000 này, nào là mới nhất của một, I don' T biết vấn đề là gì Nhưng công việc của nó đối với tôi.

[Làm theo các bước do Alexander cung cấp]

Có thể hoạt động tốt với Bản cập nhật mới.

enter image description here

Có thể làm việc tốt với các cập nhật mới.

enter image description here

0

Tôi gặp nhiều vấn đề với bản đồ đó. Nhưng cuối cùng succes, xây dựng! Tôi không sử dụng nhật thực, chỉ cần dòng lệnh. Lần đầu tiên tôi gặp khó khăn khi tôi chỉ sao chép vào myProject/libs/files từ google-play-services_lib/libs và thực hiện gỡ lỗi kiến ​​... Sau khi cài đặt trên trình mô phỏng android tôi gặp lỗi java.lang.NoClassDefFoundError: com.google.android. styleable gms.R $

ngày sau afer giờ giải pháp serching:

1) Trước tiên tôi sao chép Danh mục sdk/extras/google /.../ google-play-services_lib vào danh mục myproject tôi.

2) Do một android update project --target <your target> -p myProject/google-play-services_lib như dùng dzeikei nói (để kiểm tra chỉ tiêu exec: android list target)

3) chỉnh sửa tập tin "project.properties" trong thư mục myproject, và thêm dòng này trong android.library.reference cuối .1 = google-play-services_lib hoặc thực hiện android update project --target android-19 --path myProject --library myProject/google-play-services_lib

4) ant clean, ant debug .... nhưng có một số lỗi, ví dụ: trả về null vv (làm cho nhức đầu). nhưng sau đó kiến ​​tạo thư mục bin và gen trong thư mục myProject/google-play-services_lib

5) ater tìm kiếm nhiều giải pháp cho lứa tuổi để faind lý do tại sao lỗi gỡ lỗi trả về Tôi hoàn thành mảnh và chỉ sao chép danh mục bin và gen từ myProject/google-play-services_lib/vào myProject/bin và myProject/gen

6) sau đó xóa dòng tôi đã được thêm trước đó tại điểm 3. trên # android.library.reference.1 = google-play-services_lib và sao chép tệp myProject/google-play-services_lib/libs/google-play-services.jar vào myProject/libs/google-play-services.jar

7) thực thi ant debug

adb install -r bin/myProject-debug.apk 

và cuối cùng nhìn thấy bản đồ google trong projectApplication tôi trên giả lập android :)

Tất nhiên stuf khác như API_KEY hoặc thêm và permisions từ bản đồ google hướng dẫn tôi thực hiện trước khi tôi lập dự án. Để xem bản đồ mà không cần promt, ví dụ: "Instal Goodle Play Services" sử dụng trình giả lập với các dịch vụ của google đã được cài đặt sẵn. Tôi đã sử dụng API Google (Google Inc.) từ danh sách Trình quản lý AVD. Tôi hy vọng điều này sẽ giúp bạn.

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