从谷歌地图映射开始,该怎么办?

gminus 发布于 2019-03-09 android 最后更新 2019-03-09 14:40 3 浏览

那么,嘿,所有! 所以,在Android谷歌地图API v2开发中,我不够友好,我想我可以通过发布我的试用结果来获得一些智慧,并获得一些反馈,希望您能够和足够的时间给我一些指导。 所以,我们走吧! 首先,我的活动代码:

    package com.example.ok;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
@SuppressLint("NewApi")
public class MainActivity extends Activity {
    static final LatLng HAMBURG = new LatLng(53.558, 9.927);
    static final LatLng KIEL = new LatLng(53.551, 9.993);
    private GoogleMap map;
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
                .getMap();
        Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG)
                .title("Hamburg"));
        Marker kiel = map.addMarker(new MarkerOptions()
                .position(KIEL)
                .title("Kiel")
                .snippet("Kiel is cool")
                .icon(BitmapDescriptorFactory
                        .fromResource(R.drawable.ic_launcher)));
// Move the camera instantly to hamburg with a zoom of 15.
        map.moveCamera(CameraUpdateFactory.newLatLngZoom(HAMBURG, 15));
// Zoom in, animating the camera.
        map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
    }
@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}
其次,清单的代码:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.ok"
    android:versionCode="1"
    android:versionName="1.0" >
<uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
<permission
        android:name="com.example.ok.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />
<uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />
<uses-permission android:name="com.example.ok.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" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <uses-library android:name="com.google.android.gms.maps" />
<activity
            android:name="com.example.ok.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
<meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="I Got it and I had to change debug keystore for it and ... long story but I really think it's a good apikey" />
    </application>
</manifest>
第三,布局XML的代码:
<RelativeLayout 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"
    tools:context=".MainActivity" >
<fragment
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.MapFragment" />
</RelativeLayout>
正如你会注意到的那样,只不过是一个初学者的标准代码开始,然后滚到更深更深的东西......但是,它不起作用! 现在,在完成我的研究之后,我必须评估几个最终导致我的困难的原因,以下是我所经历的: 1-模拟器通常不处理这种情况,因为openGL es 2.0还没有得到这些虚拟机的很好支持, 2-apiKey不好,事实上一开始我试图用api v1来做代码,但由于它的存在,我陷入了各种各样的问题(不推荐使用..),现在我转向使用v2编码,我已经删除了调试keystore文件,然后在eclipse上重建,得到一个新的,然后使用包名称的SHA-1代码在Google Console上生成新的apiKey代码...所以我不认为这是我的邪恶来源, 3-尝试过一个设备,我下载了很少的openGL es 2.0演示程序,它运行的很好,所以不能是openGL(但是谁知道?)。当我尝试安装apk时,它声明应用程序必须具有使用internat和位置数据等的权限,我点击安装,但是...对不起,“应用程序未安装”! 我已经将我需要的东西带入了我的项目库,这意味着:android-support-v4.jar和google-play-services.jar等等...... 5确保项目构建目标是谷歌APIS 17(与4.2平台兼容,在写这篇文章的时候我注意到我的设备是4.0.2 Android版本,可能是这样吗?)。 所以,那很漫长,希望你仍然可以在你身上找到可能的解决办法,在我的情况下可能是有用的。 提前致谢 ! 在这里,我添加了我的logcat的最后(重复部分),只是出现了这样的错误:
04-11 17:11:15.289: E/StrictMode(700): null
04-11 17:11:15.289: E/StrictMode(700): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d195d0 that was originally bound here
04-11 17:11:15.289: E/StrictMode(700):  at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
04-11 17:11:15.289: E/StrictMode(700):  at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
04-11 17:11:15.289: E/StrictMode(700):  at android.app.ContextImpl.bindService(ContextImpl.java:1418)
04-11 17:11:15.289: E/StrictMode(700):  at android.app.ContextImpl.bindService(ContextImpl.java:1407)
04-11 17:11:15.289: E/StrictMode(700):  at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
04-11 17:11:15.289: E/StrictMode(700):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
04-11 17:11:15.289: E/StrictMode(700):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
04-11 17:11:15.289: E/StrictMode(700):  at com.android.emailcommon.service.ServiceProxy.test(ServiceProxy.java:191)
04-11 17:11:15.289: E/StrictMode(700):  at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1850)
04-11 17:11:15.289: E/StrictMode(700):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
04-11 17:11:15.289: E/StrictMode(700):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
04-11 17:11:15.289: E/StrictMode(700):  at android.os.AsyncTask$2.call(AsyncTask.java:287)
04-11 17:11:15.289: E/StrictMode(700):  at java.util.concurrent.FutureTask.run(FutureTask.java:234)
04-11 17:11:15.289: E/StrictMode(700):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
04-11 17:11:15.289: E/StrictMode(700):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
04-11 17:11:15.289: E/StrictMode(700):  at java.lang.Thread.run(Thread.java:856)
已邀请: