Back

TODO 高德地图titanium module 实战

发布时间: 2015-12-23 09:14:00

昨天的 ipal 实战失败。  没有搞定,比较麻烦。(android)

今天试试高德地图SDK

1. 注册。 输入邮箱, 申请appkey 

2. 于是收到一封邮件,看起来心里暖暖的:

尊敬的开发者:
您好!感谢您选择高德 LBS 开放平台,注册成为我们的开发者!
高德作为业内最专业的地图公司,我们一直致力于为合作伙伴、开发者提供最专业、最优质的定位、地图及导航服务。
我们的目标是:让天下没有难做的地图开发!

首先,说说我们为您提供了什么?
在官网 ( lbs.amap.com )上,您可以找到:
1、   最专业最易用的地图开发工具
我们为开发者提供了覆盖了 JS 、 Android 、 iOS 、 Windows 等全平台的地图 API/SDK 。
让每个开发者获得和高德地图一样专业的定位、地图及导航。
定位           地图            路线规划         导航        室内地图         了解更多 >>

2、   最贴心的 O2O 解决方案
这是一个“一键速成 ” 的时代,我们也深谙开发者需求。
针对 O2O 不同场景,我们推出了一系列产品解决方案,有源码、有 demo 。 30 分钟搞定 O2O 应用!说出来都不信吧?!
O2O .  到家             O2O .  到店            O2O .  出行          了解更多 >>

3、   最快捷的位置云存储 & 云计算
高德云图为您提供了一个自有位置数据采集、存储、渲染及检索的一体化高效能工具。
自有数据地图开发,选择它,据说开发量减少了 50% 都不止呢!
数据采集              数据存储及展现              了解更多 >>

4、   最权威的位置大数据
高德 LBS 开放平台每天支持超过 100 亿次定位请求,拥有海量的车流、人流轨迹数据。
我们在商业选址、用户画像、交通迁徙等维度给出最权威的大数据分析。 了解更多 > >

 其次,如何联系到我们?
如果您有权限申请需求或合作需求,请点击 “这里” 。
如果您有技术问题,可以先看看 "常见问题" ;
如果还是不能解决您的问题,可以到 “ 论坛 ” 提问,产品经理会及时回复您。
感谢您对于高德 LBS 开放平台的信任及支持!我们会努力做的更好!

高德LBS开放平台
2015年12月23日

下载高德SDK, 重点是解压缩这个文件,可以看到:

屏幕快照 2016 01 04 下午6.43.16

把这些jar文件都copy到对应的lib, libs目录下。

修改: android/timodule.xml 文件,加上:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application
    android:icon="@drawable/icon"
    android:label="@string/app_name" >
    <meta-data
        android:name="com.amap.api.v2.apikey"
        android:value="894c16bf75aa417888bb70ebd63b9f66"/>
    <activity android:name="com.amap.demo.LocationManager" >        <intent-filter>            <action android:name="android.intent.action.MAIN" />            <category android:name="android.intent.category.LAUNCHER" />        </intent-filter>    </activity></application>

原文中的: “注意:因为3D地图SDK和导航SDK需要引入so库文件,所有需要再app/src/main/目录下新建jniLibs目录,将so放到此目录下,如图所示: ” 这句话中的文件我没有找到。所以就跳过了。

接下来,就根据官方文档的:

显示3D地图时,布局文件(res/layout/basicmap_activity.xml):

<?xml version="1.0" encoding="utf-8"?>
<!-- 引入布局文件 -->
<com.amap.api.maps.MapView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

程序代码(com.amapv2.apis.basic. BasicMapActivity.java):

/**
 * AMapV2地图中介绍如何使用mapview显示地图
 */
    //声明变量
    private MapView mapView;
    private AMap aMap;
    //在onCreat方法中给aMap对象赋值
    setContentView(R.layout.basicmap_activity);
    mapView = (MapView) findViewById(R.id.map);
    mapView.onCreate(savedInstanceState);// 必须要写
    aMap = mapView.getMap();

然后,遇到个问题: 

[INFO]  Running dexer: /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java "-Xmx512M" "-XX:-UseGCOverheadLimit" "-Djava.ext.dirs=/workspace/coding_tools/android-sdk-macosx/platform-tools" "-jar" "/workspace/coding_tools/android-sdk-macosx/build-tools/23.0.2/lib/dx.jar" "--dex" "--output=/workspace/test_map/build/android/bin/classes.dex" "/workspace/test_map/build/android/bin/classes" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/lib/titanium-verify.jar" "/workspace/test_map/modules/android/com.test.gaode/1.0.0/module_gaodemap.jar" "/workspace/test_map/modules/android/com.test.gaode/1.0.0/lib/AMap_Android_3DMapSDK_V3.1.1_20151216.jar" "/workspace/test_map/modules/android/com.test.gaode/1.0.0/lib/AMap_Location_v2.0.0_20151117.jar" "/workspace/test_map/modules/android/com.test.gaode/1.0.0/lib/AMap_Services_V2.7.0_20151125.jar" "/workspace/test_map/modules/android/com.test.gaode/1.0.0/lib/Volley.jar" "/workspace/test_map/modules/android/com.test.gaode/1.0.0/lib/android-support-v4.jar" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/kroll-v8.jar" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/modules/titanium-analytics.jar" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/aps-analytics.jar" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/modules/titanium-android.jar" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/jaxen-1.1.1.jar" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/ti-commons-codec-1.3.jar" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/kroll-common.jar" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/titanium.jar" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/modules/titanium-app.jar" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/modules/titanium-ui.jar" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/nineoldandroids-appc-2.4.0.jar" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/modules/titanium-filesystem.jar" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/modules/titanium-media.jar" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/modules/titanium-appcompat.jar" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/android-support-v4.jar" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/android-support-v7-appcompat.jar" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/modules/titanium-cardview.jar" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/cardview-v7-23.0.1.jar" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/modules/titanium-locale.jar" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/modules/titanium-network.jar" "/Users/sg552/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.v20151228134127/android/modules/titanium-xml.jar"
[ERROR] Failed to run dexer:
[ERROR]   
[ERROR] Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat;
[ERROR] Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoIcsImpl;
[ERROR] Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoStubImpl;
[ERROR] Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
[ERROR] Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompatIcs;
[ERROR] Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/ActivityCompat;
[ERROR] Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/ActivityCompatHoneycomb;
[ERROR] Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/BackStackRecord;
[ERROR] Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/BackStackRecord$Op;
[ERROR]   
[ERROR] UNEXPECTED TOP-LEVEL EXCEPTION:
[ERROR] java.lang.RuntimeException: Translation has been interrupted
[ERROR]         at com.android.dx.command.dexer.Main.processAllFiles(Main.java:608)
[ERROR]         at com.android.dx.command.dexer.Main.runMonoDex(Main.java:311)
[ERROR]         at com.android.dx.command.dexer.Main.run(Main.java:277)
[ERROR]         at com.android.dx.command.dexer.Main.main(Main.java:245)
[ERROR]         at com.android.dx.command.Main.main(Main.java:106)
[ERROR] Caused by: java.lang.InterruptedException: Too many errors
[ERROR]         at com.android.dx.command.dexer.Main.processAllFiles(Main.java:600)
[ERROR]         ... 4 more

半个月前就卡在这里了。 仔细看了下后面的消息,发现跟i18n没关系,是我多加了一个jar文件: android-support-v4.jar    应该是titanium已经把这个文件包含过了。 不应该再次包含。

删掉之后,就可以重新编译了。

于是,接下来,我们要搞定的,就是如何:

1. 获取到 MapView:  

2. 根据mapview 获取到amap

3. amap.getView()

Back