【问题标题】:Cannot resolve maps symbol无法解析地图符号
【发布时间】:2019-04-15 02:25:16
【问题描述】:

我正在尝试在我的应用程序中使用谷歌地图,但当我尝试导入包时它无法识别“地图”。我收到错误“无法解析符号映射”。我从我的 sdk 版本中安装了 google api,但我仍然找不到这个问题的解决方案。

package com.example.app_silvia;

import android.support.v7.app.AppCompatActivity;
import java.io.IOException;
import java.util.List;

import android.content.Context;
import android.location.Address;
import android.location.Geocoder;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import android.support.v7.app.AlertDialog;




public class Reporte3Activity extends AppCompatActivity {
    private ManejoSesion session;
    private MapView mapa;
    private MapController controlMapa;
    private Button boton;
    private EditText input;
    private String direccion;
    private List <Address> address;



}

这是我的manifest.xml

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

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-feature
        android:name="android.hardware.camera"
        android:required="true" />
    <protected-broadcast android:name="android.intent.action.MEDIA_MOUNTED"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:usesCleartextTraffic="true"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="@string/api" />
        <activity
            android:name=".LoginActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".RegisterActivity"
            android:label="@string/registername"
            android:screenOrientation="portrait"></activity>
        <activity android:name=".ReporteActivity"
            android:label="@string/reportename"
            android:screenOrientation="portrait"></activity>
        <activity android:name=".Reporte2Activity"
            android:label="@string/reportename"
            android:screenOrientation="portrait"></activity>

    </application>

</manifest>

这是我的build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.app_silvia"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:28.0.0-rc02'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.android.support:design:28.0.0-rc02'
    implementation 'com.android.volley:volley:1.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.google.android.gms:play-services-maps:16.1.0'
}

我做错了什么?

【问题讨论】:

  • 欢迎来到 Stack Overflow!如果您可以将代码修改为minimal reproducible example,您将更有可能获得帮助。基本上在演示问题的同时尽可能短。

标签: android maps


【解决方案1】:

在 AndroidManifest.xml 中,将以下元素添加为 &lt;application&gt; 元素的子元素,方法是将其插入到结束 &lt;/application&gt; 标记之前:

 <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="YOUR_API_KEY"/>

并且还提供权限。

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

在您的 XML 布局文件中添加谷歌地图片段。

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/map"
    tools:context=".MapsActivity"
    android:name="com.google.android.gms.maps.SupportMapFragment" />

然后在 onCreate 覆盖方法内的地图活动中添加以下代码。

  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

如需进一步了解,请参阅android developer documentation

【讨论】:

  • 问题是我已经完成了所有这些,但错误仍然存​​在。我认为可能是 gradle 或 sdk,但我不确定可能是什么。
  • 你在 build.gradle 中添加了这个吗?实施 'com.google.android.gms:play-services-maps:16.1.0' 实施 'com.google.android.gms:play-services-places:16.0.0'
猜你喜欢
  • 1970-01-01
  • 2015-01-10
  • 2021-12-22
  • 2018-11-11
  • 1970-01-01
  • 2016-05-03
  • 2018-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多