Tôi mới sử dụng Android và muốn hiển thị bản đồ Google trên điện thoại Android của mình. Tôi đã tạo khóa API hoạt động cho mọi ứng dụng Android (Tôi không cung cấp bất kỳ SHA cụ thể nào cho ứng dụng của mình). Tôi đoán nó không quan trọng. Sử dụng Hướng dẫn của Google Android, tôi đang làm theo tất cả các bước và tôi nhận được hình mờ của google ở góc dưới bên trái nhưng không có bản đồ. Tôi sẽ đăng tất cả mã tôi đang sử dụng. Tôi đang cố gắng sử dụng Hoạt động trên Google Maps đi kèm với Android Studio 1.2.1.1. Tôi không gặp bất kỳ lỗi nào, nhưng tôi cũng không nhận được bản đồ.
Tôi đang sử dụng MapFragment vì nó có vẻ dễ hơn MapView.
Tôi cũng đã xem bảng điều khiển dành cho nhà phát triển cho API này - tôi không có bất kỳ lưu lượng truy cập nào - có phải khóa API không được sử dụng nên ứng dụng của tôi không nhận được báo cáo phải không? Tôi có nghi ngờ - làm cách nào để kiểm tra điều này?
Tôi đang cố gắng làm theo các bước ở đây - https://developers.google.com/maps/documentation/android/map
Một truy vấn liên quan khác là, tôi cho rằng tôi có thể tạo nhiều bố cục. Tôi bắt đầu với một Hoạt động trống hoạt động như một màn hình chờ, sau đó thử truy cập Hoạt động trên bản đồ - Tôi không thể tạo Hoạt động trên bản đồ trong Android Studio. Tôi có thể tạo Hoạt động đầu tiên thông qua trình hướng dẫn nhưng không thể tạo Hoạt động thứ hai. Tôi đã bỏ lỡ điều gì à?
Cảm ơn vì sự giúp đỡ
AndroidManifest.xml
package="com.nbapl.avapps.mapscreen" >
< tính năng sử dụng
android:glEsVersion="0x00020000"
android:required="true"/>
<ứng>ứng>
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
android:name="com.google.android.maps.v2.API_KEY"
android:value="API_KEY" />
android:name=".MapsActivity"
android:label="@string/title_activity_maps" >
Tôi cũng đã sử dụng Tệp->Cấu trúc dự án ->Phụ thuộc - Ứng dụng-> và thấy rằng Dịch vụ của Google Play được bao gồm.
MapsActivity.java
gói com.nbapl.avapps.mapscreen;
nhập com.google.android.gms.maps.*;
nhập com.google.android.gms.maps.model.*;
nhập android.os.Bundle;
nhập android.support.v4.app.FragmentActivity;
lớp công khai MapsActivity mở rộng FragmentActivity triển khai OnMapReadyCallback {
@Ghi đè
khoảng trống được bảo vệ trênCreate(Gói đã lưuInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map);
MapFragment mapFragment = (MapFragment) getFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(cái này);
}
@Ghi đè
khoảng trống công khai trênMapReady(bản đồ GoogleMap) {
map.addMarker(MarkerOptions mới()
.position(LatLng mới(0, 0))
.title("Đây là trung tâm"));
}
}
Đây là bố cục xml
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/frame"
android:background="#ffe2ff0e"
android:có thể nhấp được="false"
android:foreground="#fffff9c5">
<đoạn xmlns:android="http://schemas.android.com/apk/res/android">đoạn>
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.google.android.gms.maps.MapFragment" />
Giới thiệu tệp Gradle của phần phụ thuộc ở cấp mô-đun build.gradle
áp dụng plugin: 'com.android.application'
Android {
biên dịchSdkPhiên bản 22
buildToolsVersion "23.0.0 rc2"
cấu hình mặc định {
applicationId "com.nbapl.avapps.mapscreen"
minSdkPhiên bản 15
targetSdkPhiên bản 22
phiên bảnMã 1
Tên phiên bản "1.0"
}
buildTypes {
giải phóng {
minifyEnabled sai
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
sự phụ thuộc {
biên dịch fileTree(dir: 'libs', include: ['*.jar'])
biên dịch 'com.google.android.gms:play-services:7.5.0'
biên dịch 'com.android.support:appcompat-v7:22.2.0'
}
Hoạt động của bạn tạo bố cục nhưng bạn cần thêm một số mã để thực sự bắt đầu bản đồ:
Trong MapsActivity.java:
@Ghi đè
khoảng trống được bảo vệ trênCreate(Gói đã lưuInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
MapFragment mapFragment = (MapFragment) getFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(cái này);
}
Ngoài ra, Hoạt động của bạn nên triển khai OnMapReadyCallback để có thêm logic bản đồ. Nhìn thấy https://developers.google.com/maps/documentation/android/ Tài liệu tại
Tôi là một lập trình viên xuất sắc, rất giỏi!