关于谷歌地图和百度地图的抉择:
补充:http://news.3snews.net/industry/20120305/18896.shtml
经过调研(或许不够准确,但目前我得到的信息是这样的)
发现大部分国内Android手机制造商在操作系统中删除了谷歌地图的文件,导致建立Google APIs Android Project的时候,无法install到Android手机上。
提示:“Package com.lmj.demo requires unavailable shared library com.google.android.maps; failing!”
原因是手机系统中缺少两个文件:
/system/framework中少了com.google.android.maps.jar文件,
/system/etc/permissions/下少了com.google.android.maps.xml文件。
解决办法:
需要拷贝缺少的文件到相应的目录下。
缺陷:
有的Android机型,例如乐Pad,没有权限拷贝文件至该目录。
因此,只能暂时选择百度地图。如果大家有好的方法和建议,希望告诉我,谢谢!
网上有一个比较全的拷贝文件的方法,大家可以借鉴:
----------------------------------------------------------------------
安装基于google map的应用问题解决
四14
Posted by 寻道者 in Android | No Comments
本来我是写过一篇关于如果安装基于google map应用的文章的,见在Android系统上安装基于google map的应用出错
但今天到手的乐pad竟然不让我把这个文件放到指定的目录,提示权限不够。我只能提权操作了,费了一个下午的时间。下面总结一下:
先是安装“Root System Tool”,这里下载
接着,有了Root权限后,修改/system/framework的权限,命令是:
chmod 777 /system/framework
chmod 777 /system/etc/permissions
然后使用adb命令复制文件,命令是:
adb -d push com.google.android.maps.jar /system/framework/com.google.android.maps.jar
adb -d push com.google.android.maps.xml /system/etc/permissions/com.google.android.maps.xml
现在可以安装您的基于google map的应用了,这样就不会提示错误了
requires unavailable shared library com.google.android.maps; failing!
最后,将文件夹的权限修改回来,卸载掉“Root System Tool”。权限改回来的命令是:
chmod 755 /system/framework
chmod 755 /system/etc/permissions
在Android系统上安装基于google map的应用出错
四13
Posted by 寻道者 in Android | No Comments
requires unavailable shared library com.google.android.maps; failing!
把下面两个文件放在对应系统目录下:
com.google.android.maps.jar ==> system/framework/
com.google.android.maps.xml ==> system/etc/permissions/
Android终端支持google map
三18
Posted by 寻道者 in Android | No Comments
错误如下:
03-18 17:34:09.888: ERROR/PackageManager(94): Package requires unavailable shared library com.google.android.maps; failing!
解决方法:
1. 在Android中,额外支持Google Add-ons(Google Maps),需要将如下档案(从标准的SDK中pull出来的,也可以从GPhone中pull出来)打包进System.img。Google Add-ons只需要1–2,Goolge Maps(Google的地图程序) 需要1–5:
1)system/framework com.google.android.maps.jar
2)system/etc/permissions com.google.android.maps.xml
3)system/framework com.google.android.gtalkservice.jar
4)system/etc/permissions com.google.android.gtalkservice.xml
5)system/app Maps.apk (Google Maps v3.0)
2.源码:Android Cupcake Release(经测试,在donut平台同样适用。)
1)编译源码(为了生成out/target目录中Android最原始的东西)
2)将以上文件加入out/target/product/generic相应目录,在源码根目录使用make snod打包,获得新的system.img
转自:Android Map开发基础知识学习笔记
点击Android google map显示坐标
九27
Posted by 寻道者 in Android | No Comments
public boolean dispatchTouchEvent(MotionEvent event) {
if (event.getAction() == 1) {
GeoPoint p = myMapView.getProjection().fromPixels((int) event.getX(), (int) event.getY());
Geocoder geoCoder = new Geocoder(getBaseContext(), Locale.getDefault());
try {
List<Address> addresses = geoCoder.getFromLocation(p.getLatitudeE6() / 1E6, p.getLongitudeE6() / 1E6, 1);
StringBuilder add = new StringBuilder();
if (addresses.size() > 0) {
for (int i = 0; i < addresses.get(0).getMaxAddressLineIndex(); i++)
add.append(addresses.get(0).getAddressLine(i) + "/n");
}
add.append(p.getLatitudeE6() / 1E6 + "," + p.getLongitudeE6() / 1E6);
Toast.makeText(getBaseContext(), add, Toast.LENGTH_LONG).show();
} catch (IOException e) {
Log.e("HangzhouBike", e.getMessage());
}
return true;
} else
return false;
}
通过Intent调用google map时显示指定坐标的标记
七19
Posted by 寻道者 in Android | No Comments
在使用网页版google map的时候,可以在指定的坐标上加标记即marker,就是那个红色的标记。但在android手机上,通过Intent调用google map时,却无法将指定坐标的标记显示在地图上,找了很久,终于找到了方法。
String title="杭州花圃",lat="30.2451655784728",lng="120.130562782287";
Uri mapUri = Uri.parse("http://maps.google.com/maps?q=" +lat + "," + lng + "(" + title + ")&z=21&cbp=1");
Intent i = new Intent(Intent.ACTION_VIEW, mapUri);
startActivity(i);
以上代码就是在指定的经纬度上显示标记名称,即在(120.130562782287,30.2451655784728)显示杭州花圃。z=21是显示级别。
通过以上代码,就能够在android google map上显示自定义坐标和标记了。
下载android eclipse adt plugin地址
五26
Posted by 寻道者 in Android | No Comments
直接将该http://dl-ssl.google.com/Android/eclipse地址复制到eclipse Software Updates进行更新就OK。
Android通过gps获取当前的城市街道与误差的代码
五13
Posted by 寻道者 in Android | No Comments
一般来讲,通过gps获取到经纬度坐标以后,要继续深入的获取该经纬度坐标的城市、街道与精度(误差)等信息。
private String getAddressbyGeoPoint() {
// 自经纬度取得地址
StringBuilder sb = new StringBuilder();
Geocoder gc = new Geocoder(getBaseContext(), Locale.getDefault());
List<Address> lstAddr = null;
try {
lstAddr = gc.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
} catch (IOException e) {
Log.e("HangzhouBike", e.getMessage());
}
if (lstAddr != null && lstAddr.size() > 0) {
Address addr = lstAddr.get(0);
if (addr.getAddressLine(1) != null)
sb.append(addr.getAddressLine(1)).append(" ");
if (addr.getAddressLine(2) != null)
sb.append(addr.getAddressLine(2)).append(" ");
sb.append(" ±" + location.getAccuracy() + "米");
}
return sb.toString();
}
Android判断是否有可用网络的代码
五13
Posted by 寻道者 in Android | No Comments
在开发基于网络的应用的时候,需要判断是否有可用的网络,如果没有开启WIFI或者APN的话,是无法连接网络的。以下代码是判断是否有网络,以及没有网络的话,打开系统设置进行开启。
private boolean CheckNetwork() {
boolean flag = false;
ConnectivityManager cwjManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (cwjManager.getActiveNetworkInfo() != null)
flag = cwjManager.getActiveNetworkInfo().isAvailable();
if (!flag) {
Builder b = new AlertDialog.Builder(this).setTitle("没有可用的网络").setMessage(getResources().getString("请开启GPRS或WIFI网络连接"));
b.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
Intent mIntent = new Intent("/");
ComponentName comp = new ComponentName("com.android.settings", "com.android.settings.WirelessSettings");
mIntent.setComponent(comp);
mIntent.setAction("android.intent.action.VIEW");
startActivity(mIntent);
}
}).setNeutralButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
}).create();
b.show();
}
return flag;
}
主要是通过Intent来调用开启网络的Activity。
补充:http://news.3snews.net/industry/20120305/18896.shtml
经过调研(或许不够准确,但目前我得到的信息是这样的)
发现大部分国内Android手机制造商在操作系统中删除了谷歌地图的文件,导致建立Google APIs Android Project的时候,无法install到Android手机上。
提示:“Package com.lmj.demo requires unavailable shared library com.google.android.maps; failing!”
原因是手机系统中缺少两个文件:
/system/framework中少了com.google.android.maps.jar文件,
/system/etc/permissions/下少了com.google.android.maps.xml文件。
解决办法:
需要拷贝缺少的文件到相应的目录下。
缺陷:
有的Android机型,例如乐Pad,没有权限拷贝文件至该目录。
因此,只能暂时选择百度地图。如果大家有好的方法和建议,希望告诉我,谢谢!
网上有一个比较全的拷贝文件的方法,大家可以借鉴:
----------------------------------------------------------------------
安装基于google map的应用问题解决
四14
Posted by 寻道者 in Android | No Comments
本来我是写过一篇关于如果安装基于google map应用的文章的,见在Android系统上安装基于google map的应用出错
但今天到手的乐pad竟然不让我把这个文件放到指定的目录,提示权限不够。我只能提权操作了,费了一个下午的时间。下面总结一下:
先是安装“Root System Tool”,这里下载
接着,有了Root权限后,修改/system/framework的权限,命令是:
chmod 777 /system/framework
chmod 777 /system/etc/permissions
然后使用adb命令复制文件,命令是:
adb -d push com.google.android.maps.jar /system/framework/com.google.android.maps.jar
adb -d push com.google.android.maps.xml /system/etc/permissions/com.google.android.maps.xml
现在可以安装您的基于google map的应用了,这样就不会提示错误了
requires unavailable shared library com.google.android.maps; failing!
最后,将文件夹的权限修改回来,卸载掉“Root System Tool”。权限改回来的命令是:
chmod 755 /system/framework
chmod 755 /system/etc/permissions
在Android系统上安装基于google map的应用出错
四13
Posted by 寻道者 in Android | No Comments
requires unavailable shared library com.google.android.maps; failing!
把下面两个文件放在对应系统目录下:
com.google.android.maps.jar ==> system/framework/
com.google.android.maps.xml ==> system/etc/permissions/
Android终端支持google map
三18
Posted by 寻道者 in Android | No Comments
错误如下:
03-18 17:34:09.888: ERROR/PackageManager(94): Package requires unavailable shared library com.google.android.maps; failing!
解决方法:
1. 在Android中,额外支持Google Add-ons(Google Maps),需要将如下档案(从标准的SDK中pull出来的,也可以从GPhone中pull出来)打包进System.img。Google Add-ons只需要1–2,Goolge Maps(Google的地图程序) 需要1–5:
1)system/framework com.google.android.maps.jar
2)system/etc/permissions com.google.android.maps.xml
3)system/framework com.google.android.gtalkservice.jar
4)system/etc/permissions com.google.android.gtalkservice.xml
5)system/app Maps.apk (Google Maps v3.0)
2.源码:Android Cupcake Release(经测试,在donut平台同样适用。)
1)编译源码(为了生成out/target目录中Android最原始的东西)
2)将以上文件加入out/target/product/generic相应目录,在源码根目录使用make snod打包,获得新的system.img
转自:Android Map开发基础知识学习笔记
点击Android google map显示坐标
九27
Posted by 寻道者 in Android | No Comments
public boolean dispatchTouchEvent(MotionEvent event) {
if (event.getAction() == 1) {
GeoPoint p = myMapView.getProjection().fromPixels((int) event.getX(), (int) event.getY());
Geocoder geoCoder = new Geocoder(getBaseContext(), Locale.getDefault());
try {
List<Address> addresses = geoCoder.getFromLocation(p.getLatitudeE6() / 1E6, p.getLongitudeE6() / 1E6, 1);
StringBuilder add = new StringBuilder();
if (addresses.size() > 0) {
for (int i = 0; i < addresses.get(0).getMaxAddressLineIndex(); i++)
add.append(addresses.get(0).getAddressLine(i) + "/n");
}
add.append(p.getLatitudeE6() / 1E6 + "," + p.getLongitudeE6() / 1E6);
Toast.makeText(getBaseContext(), add, Toast.LENGTH_LONG).show();
} catch (IOException e) {
Log.e("HangzhouBike", e.getMessage());
}
return true;
} else
return false;
}
通过Intent调用google map时显示指定坐标的标记
七19
Posted by 寻道者 in Android | No Comments
在使用网页版google map的时候,可以在指定的坐标上加标记即marker,就是那个红色的标记。但在android手机上,通过Intent调用google map时,却无法将指定坐标的标记显示在地图上,找了很久,终于找到了方法。
String title="杭州花圃",lat="30.2451655784728",lng="120.130562782287";
Uri mapUri = Uri.parse("http://maps.google.com/maps?q=" +lat + "," + lng + "(" + title + ")&z=21&cbp=1");
Intent i = new Intent(Intent.ACTION_VIEW, mapUri);
startActivity(i);
以上代码就是在指定的经纬度上显示标记名称,即在(120.130562782287,30.2451655784728)显示杭州花圃。z=21是显示级别。
通过以上代码,就能够在android google map上显示自定义坐标和标记了。
下载android eclipse adt plugin地址
五26
Posted by 寻道者 in Android | No Comments
直接将该http://dl-ssl.google.com/Android/eclipse地址复制到eclipse Software Updates进行更新就OK。
Android通过gps获取当前的城市街道与误差的代码
五13
Posted by 寻道者 in Android | No Comments
一般来讲,通过gps获取到经纬度坐标以后,要继续深入的获取该经纬度坐标的城市、街道与精度(误差)等信息。
private String getAddressbyGeoPoint() {
// 自经纬度取得地址
StringBuilder sb = new StringBuilder();
Geocoder gc = new Geocoder(getBaseContext(), Locale.getDefault());
List<Address> lstAddr = null;
try {
lstAddr = gc.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
} catch (IOException e) {
Log.e("HangzhouBike", e.getMessage());
}
if (lstAddr != null && lstAddr.size() > 0) {
Address addr = lstAddr.get(0);
if (addr.getAddressLine(1) != null)
sb.append(addr.getAddressLine(1)).append(" ");
if (addr.getAddressLine(2) != null)
sb.append(addr.getAddressLine(2)).append(" ");
sb.append(" ±" + location.getAccuracy() + "米");
}
return sb.toString();
}
Android判断是否有可用网络的代码
五13
Posted by 寻道者 in Android | No Comments
在开发基于网络的应用的时候,需要判断是否有可用的网络,如果没有开启WIFI或者APN的话,是无法连接网络的。以下代码是判断是否有网络,以及没有网络的话,打开系统设置进行开启。
private boolean CheckNetwork() {
boolean flag = false;
ConnectivityManager cwjManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (cwjManager.getActiveNetworkInfo() != null)
flag = cwjManager.getActiveNetworkInfo().isAvailable();
if (!flag) {
Builder b = new AlertDialog.Builder(this).setTitle("没有可用的网络").setMessage(getResources().getString("请开启GPRS或WIFI网络连接"));
b.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
Intent mIntent = new Intent("/");
ComponentName comp = new ComponentName("com.android.settings", "com.android.settings.WirelessSettings");
mIntent.setComponent(comp);
mIntent.setAction("android.intent.action.VIEW");
startActivity(mIntent);
}
}).setNeutralButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
}).create();
b.show();
}
return flag;
}
主要是通过Intent来调用开启网络的Activity。
发表评论
-
代码混淆
2013-05-18 14:31 836代码混淆: http://wenku.baidu.com/ ... -
apk签名方法
2012-12-17 14:36 860签名证书,方式相同包名的不同apk互相覆盖安装。 1. ... -
Ubuntu安装Android开发环境
2012-11-17 00:38 17081、JDK安装 在下载JDK,官网地址为:http://ww ... -
Android之完美退出所有activity方法
2012-07-10 18:52 1065/*还有一种比较流行的Android经典完美退出方法,使用单例 ... -
android 焦点问题
2012-06-04 12:31 4047参考地址:http://blog.csdn.net/zhang ... -
Android报表工具
2012-05-11 16:11 1399Android报表工具下载地址:http://code.goo ... -
Android 推送
2012-04-01 13:44 1406关于服务器端向Android客户端的推送,主要有三种方 ... -
HttpClient 教程 (六)
2012-03-21 13:26 826HttpClient 教程 (六) 第六章 高级主题 6.1 ... -
HttpClient 教程 (五)
2012-03-21 13:26 898第五章 HTTP客户端服务 5.1 HttpClient门 ... -
HttpClient 教程 (四)
2012-03-21 13:26 1058第四章 HTTP认证 HttpClient ... -
HttpClient 教程 (三)
2012-03-21 13:26 1261HttpClient 教程 (三) 第三章 HTTP状态管理 ... -
HttpClient 教程 (二)
2012-03-20 15:48 1057HttpClient 教程 (二) 第二章 连接管理 Htt ... -
HttpClient 教程 (一)
2012-03-20 15:47 990HttpClient 教程 (一) 前言 ... -
HTTP客户端服务
2012-03-20 15:39 13535.1 HttpClient门面 HttpClient接口代 ... -
Android 网络开发详解
2012-03-19 16:41 1219// 创建一个 HttpClient 实例 // 注意 H ... -
关于虚拟机AVD:Android Virtual Devices
2012-03-15 15:51 9721.拷贝虚拟SD卡文件至本地: DDMS视图->File ... -
向SD卡写文件
2012-03-15 15:47 989AndroidManifest.xml: SD卡创建与删除文 ... -
Android 近百个项目的源代码,覆盖Android开发的每个领域
2012-03-08 12:18 871Android PDF 阅读器 http://sourcefo ... -
Android Google Maps API key 申请
2012-03-07 15:17 20081.找debug.keystore文件路径: Eclipse- ... -
Android的断点设置
2012-03-07 14:46 3905Note: 在onCreate方法中加入Debug.waitF ...
相关推荐
MySql5.7.20安装过程中报错 This application requires Visual Studio 2013 Redistributable. Please install the Redistributable then run this installer again. 的解决办法.报错如下: 1: Action 10:59:21: ...
在Android开发中,`import android.support.annotation.RequiresApi`是一个经常使用的注解,它用于标记一个方法或类,表明这个元素只能在特定版本的Android API级别及以上才能被使用。`v7包`是Android Support ...
3. **使用模块系统(Java 9+)**:如果你的项目已经迁移到了Java 9的模块系统,你可以通过`requires`语句在模块定义中明确声明对JAXB的依赖。例如,在`module-info.java`文件中添加: ```java module ...
三、This Android SDK requires Android Developer Toolkit version 20.0.0 or above 错误 该错误是由于 Eclipse 中的 ADT 版本过低所致,解决方法是将插件版本改为当前版本,例如从 20.0.0 改为 18.0.0,然后重新...
Maven更新问题 今天Maven在更新的时候发现一直更新不成功,总结下解决方法。 在apache-maven-3.5.2/conf/setting.xml中加入以下配置即可解决 alimaven aliyun maven ...
信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Java\jre1.5.0_11\bin;.;C:\WINDOWS\system32;C:\WINDOWS;C:\...
PDF generation requires a TeX distribution like `TeX Live`_ or MiKTeX_. Development setup ------------------ Run the bash script ``SetupForDevelopment.sh``:: $ ./Utilities/SetupForDevelopment.sh ...
I am currently collecting data on which devices it will and will not work oh, and manually excluding devices which will not work on so it does not show up in their android market.It will work on most...
适用于Android实用程序库的Maps SDK描述该...要求Android API 15级以上通过Google Play服务或库生成的安装dependencies { // Utilities for Maps SDK for Android (requires Google Play Services) implementation ' ...
A Standalone Sentry deployment requires that you have already installed one of the MobileIron Enterprise Mobility Management (EMM) platforms, MobileIron Core or MobileIron Cloud. With input from ...
解决包依赖问题: Requires: libmpfr.so.1()(64bit) Requires: libgmp.so.3()(64bit)
AndroidManifest.xml:1: error: No resource identifier found for attribute 'compileSdkVersionCodename' in package 'android' 解决方法:在AndroidManifest.xml中删除'compileSdkVersionCodename相关的。 二、...
yum -y install docker-ce,安装高版本docke-ce,报错Problem: package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed,意思就是 containerd....
- **ADT下载地址**:[https://dl-ssl.google.com/android/eclipse/](https://dl-ssl.google.com/android/eclipse/) - **Eclipse IDE for Java EE Developers下载地址**:...
This is Weaver, a framework for writing multi-threaded Unit Tests in Java. Documentation is available in the docs directory, ... (http://code.google.com/p/objenesis). Version 1.0 or greater. Cglib. (htt
标题中的“glibc-2.17-307.el7.1.i686_libc文件_依赖glibc安装_源码”指的是Linux系统中一个重要的动态链接库——GNU C Library(通常简称为glibc)的一个特定版本。glibc是Linux操作系统下最基础、最核心的库,为...
在IT领域,尤其是在服务器配置与管理中,Apache作为全球广泛使用的Web服务器软件之一,其安装与配置过程中的问题解决显得尤为重要。本文将深入探讨“安装Apache提示缺少 libapr-1.so.0与libaprutil-1完美解决”的...
在(Google App Sync)官网(https://tools.google.com/dlpage/gappssync)下载提示为“This product is not available in your country”. 特此备份。 此压缩包包含三个安装软件: - googleappssyncsetup[includes ...
The descriptor.proto file deployed with 2.3.2.201609161849 seems to contain ...In the end I injected in an up-to-date version of the descriptor.proto file into the plugin jar under .p2\pool\plugins\...
eclipse安装activiti报错,缺少jar包。...requires 'org.eclipse.emf 2.6.0' but it could not be found.将该jar包拷贝到自己的eclipse的plugin文件夹下面,重启eclipse再次安装activiti插件就可以了。