import com.google.android.maps.MapActivity; Android Studio中不接受

时间:2016-06-16 19:55:30

标签: java android google-api mapactivity

我想开始为以下xml编写路径跟踪活动

   <?xml version="1.0" encoding="utf-8"?>
   <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/mainLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    <ToggleButton
        android:id="@+id/trackingToggleButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:textOff="Start Tracking"
        android:textOn="Stop Tracking"/>
</FrameLayout>

并在我的NeueRouteAufzeichnen.java中写下以下内容

package com.noureddine_ouertani.www.wocelli50;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import java.util.Map;
import com.google.android.maps.MapActivity;

public class NeueRouteAufzeichnen extends MapActivity {
}

以下导入中的地图为红色

import com.google.android.maps.MapActivity;

和MapActivity以及

public class NeueRouteAufzeichnen extends MapActivity 

虽然安装了Google API(API 23)。 (我在Android SDK Manager中查看过) 我想尝试使用不赞成的东西吗? 提前感谢任何提示或帮助

PS:这是我的build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.noureddine_ouertani.www.wocelli50"
        minSdkVersion 19
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:support-annotations:23.4.0'
    compile 'com.android.support:design:23.4.0'
    compile 'com.android.support:support-v4:23.4.0'
    compile 'com.google.android.gms:play-services:9.0.2'
    compile 'com.google.android.gms:play-services-maps:9.0.2'
    compile 'com.google.android.gms:play-services-location:9.0.2'
    compile 'com.google.android.gms:play-services-base:9.0.2'
}

我在AndroidManifest.xml中添加了以下内容

<uses-library android:name="com.google.android.maps"/>

编辑:我将XML(activity_neue_route_aufzeichnen.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=".NeueRouteAufzeichnen"
    android:name="com.google.android.gms.maps.SupportMapFragment" />

将此添加到我的AndroidManifest.xml

        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="@string/google_maps_key" />
删除此内容后

 <uses-library android:name="com.google.android.maps"/>

并以下面的类为基础,在实现我的路由跟踪逻辑时进行构建。

package com.noureddine_ouertani.www.wocelli50;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;


    public class NeueRouteAufzeichnen extends FragmentActivity implements OnMapReadyCallback {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_neue_route_aufzeichnen);
            SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                    .findFragmentById(R.id.map);
            mapFragment.getMapAsync(this);
        }

        @Override
        public void onMapReady(GoogleMap map) {
            // Add a marker in Sydney, Australia, and move the camera.
            LatLng sydney = new LatLng(-34, 151);
            map.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
            map.moveCamera(CameraUpdateFactory.newLatLng(sydney));
        }
    }

我已经测试过这个在我的智能手机上使用谷歌地图的新活动,但它确实有效。现在我可以专注于跟踪路线。我会尽快在这里发布我的路线追踪代码,为这个问题道歉。 :)

PS:我已经将我从Google获得的地图密钥添加到values文件夹中的strings.xml中。感谢大家的回答。 每日课程:MapActivity已经淘汰! FragmentActivity在!

EDIT2:从我的观点来看,这个帖子在EDIT之后不再重复了,因为我解释了如何通过描述我所做的事情将你的第一个Google Maps活动整合到你的Android项目中。此外,我会在这里发布我的路线追踪逻辑。

0 个答案:

没有答案