Android Studio Flamingo缺少Google Maps Activity模板,如何创建该活动?
替代创建Google Maps Activity的方法
Android Studio Flamingo及后续版本移除了Google Maps Activity模板,你可以通过以下手动配置步骤实现相同效果:
1. 创建基础空Activity项目
先创建常规的手机/平板项目,选择Empty Activity模板完成初始化。
2. 添加Maps SDK依赖
打开项目的build.gradle(Module level)文件,在dependencies块中添加Google Maps SDK依赖:
implementation 'com.google.android.gms:play-services-maps:18.2.0'
同步项目让依赖生效。
3. 配置Google Maps API密钥
- 在
res/values目录下创建google_maps_api.xml文件,添加API密钥配置:<resources> <string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">你的API密钥</string> </resources> - 前往Google Cloud平台获取并替换上述的API密钥。
4. 修改Activity布局文件
打开activity_main.xml,替换为包含SupportMapFragment的布局:
<?xml version="1.0" encoding="utf-8"?> <fragment xmlns:android="http://schemas.android.com/apk/res/android" android:name="com.google.android.gms.maps.SupportMapFragment" android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent"/>
5. 修改Activity代码逻辑
打开MainActivity文件,实现OnMapReadyCallback接口完成地图初始化:
Kotlin示例:
import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.google.android.gms.maps.GoogleMap import com.google.android.gms.maps.OnMapReadyCallback import com.google.android.gms.maps.SupportMapFragment class MainActivity : AppCompatActivity(), OnMapReadyCallback { private lateinit var mMap: GoogleMap override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val mapFragment = supportFragmentManager .findFragmentById(R.id.map) as SupportMapFragment mapFragment.getMapAsync(this) } override fun onMapReady(googleMap: GoogleMap) { mMap = googleMap // 可在此添加地图自定义逻辑,比如标记位置、调整相机视角等 } }
Java示例:
import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.SupportMapFragment; public class MainActivity extends AppCompatActivity implements OnMapReadyCallback { private GoogleMap mMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); } @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; // 添加自定义地图操作逻辑 } }
6. 配置Manifest文件
在AndroidManifest.xml中添加必要的权限和元数据:
<!-- 地图所需权限 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.INTERNET" /> <application ...> <!-- 配置Maps API密钥 --> <meta-data android:name="com.google.android.geo.API_KEY" android:value="@string/google_maps_key" /> </application>
完成以上步骤后,项目就具备了原Google Maps Activity模板的核心功能,可正常加载和使用Google地图。
内容的提问来源于stack exchange,提问作者tronman
相关产品推荐
相关产品推荐

