2012-04-24 31 views
24

Tôi đã làm việc trên ứng dụng này gần một năm nay (dự án cao cấp) khi nó vừa quyết định phá vỡ vài ngày trước. Ứng dụng của tôi đã được phát triển bằng cách sử dụng phiên bản Eclipse 3.7.2 64bit nhắm mục tiêu Froyo Android 2.2, sử dụng máy tính Windows 7 64 bit của tôi. Cho đến nay tôi đã cố gắng:'Không thể tìm thấy lỗi kiểu mapViewStyle' vẫn còn

  • sắp xếp lại các thẻ sử dụng thư viện trong file manifest
  • viết lại bản đồ xml tập tin
  • xóa file R.java và sảng khoái
  • đặt các yếu tố MapView trong vòng một bố trí
  • cài đặt lại nhật thực và android-sdk
  • sạch dự án
  • tạo ra một tập tin style.xml và tham khảo nó
  • triển khai trên một thiết bị thực tế
  • quay trở lại để mã trước

và có thể thêm ...

Mã của tôi là như sau: gmap.xml

<?xml version="1.0" encoding="utf-8"?> 
<com.google.android.maps.MapView 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/mapview" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:clickable="true" 
android:apiKey="0xMbgnc-el963gCdpl547hdkgXUILTskZr-T5uvg" // random key posted here 
/> 

AndroidManifest .xml

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

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-sdk android:minSdkVersion="8"/> 


<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <uses-library android:name="com.google.android.maps" /> 
    <activity android:name=".PubMeActivity" 
       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> 
    <activity android:name=".MappingActivity" 
       android:label="@string/app_name"> 
    </activity> 

</application> 
</manifest> 

Tôi đánh giá cao mọi trợ giúp trước.

+0

Bạn có tìm thấy giải pháp cho điều này không? Tôi đã thử tất cả các câu trả lời của SO, giống như bạn, không có gì có hiệu quả. – Ryan

+0

Tôi thực sự đã tìm thấy một giải pháp cho điều này ngay sau đó. Nhìn thấy nó đã được một thời gian, tôi không nhớ EXACLTY những gì tôi đã làm nhưng mã xml bản đồ hiện tại của tôi là như chỉnh sửa vào bài gốc. Hy vọng nó giúp. – MechaJDI

+5

Đăng câu trả lời của bạn * dưới dạng câu trả lời * chứ không phải trong phần nội dung của câu hỏi *. – casperOne

Trả lời

1

Bạn phải bao gồm /path_to_android-sdk/extras/google/google_play_services/libproject/google-play-services_lib Thư viện làm thư viện bên ngoài vào dự án của mình và cũng bao gồm tệp jar này /path_to_android-sdk/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar.

bên cạnh đó, bạn nên có những điều khoản:

<uses-permission android:name="android.permission.INTERNET" /> **<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"/>

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

Cố gắng thêm ở trên trong tập tin Manifest của bạn.

1

Tôi khuyên bạn nên xem ứng dụng demo của Maps. Gói này đi kèm với lib dịch vụ của Google Play, trong trình quản lý SDK của bạn, chỉ cần bao gồm hộp kiểm cho Mẫu cho Dịch vụ của Google Play. Sau đó, bạn có thể tìm thấy các tệp dự án @<android-sdk>/extras/google-play-services/samples/maps trong thư mục SDK của mình.

1

đây là những điều khoản bạn nên có thường cho một v2 đồ

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

<uses-permission android:name="com.example.gmapsapp.permission.MAPS_RECEIVE" /> 
<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" /> 

và phím api hiện đang được sử dụng trong file manifest với thẻ meta

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

đây tôi bao gồm một tập tin xml ví dụ về gmaps

<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/map" 
android:name="com.google.android.gms.maps.SupportMapFragment" 
android:layout_width="match_parent" 
android:layout_height="match_parent" /> 
Các vấn đề liên quan