尝试使用GoogleMap创建应用时,我在Android Studio中遇到了很多麻烦.
之前我已经按照以下指南(几乎)没有使用Eclipse作为我的IDE的问题:
https://developers.google.com/maps/documentation/android/start
我之前从未使用过Android Studio,而且整个项目/模块范例都遇到了困难.
我无法成功配置Google Play服务SDK http://developer.android.com/google/play-services/setup.html
这是我得到的一个奇怪的错误:
Gradle: FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':MyMapApp:compileDebug'. > Compilation failed; see the compiler error output for details. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
我正在尝试将新的Google Maps Android API v2合并到使用Android支持库的应用程序中.我已经经历了很多迭代,试图到某个地方工作,现在我已经放弃了,我想我应该在这里问.
我转到API控制台,创建了一个项目,为Android启用了Google Maps API v2,根据需要创建了一个调试KEY并将其粘贴到清单上.没有身份验证问题或类似的事情.很确定我做对了.
在我的项目libs
文件夹中,我放置android-support-v4.jar
(通过项目右键单击 - > Android->添加支持库...).在Eclipse中,我将File-> Import-> Android-> Existing Android Code To Intospace导入并导入最新的(rev 3)android-sdk/google/google_play_services/libproject/google-play-services_lib.然后我将它作为依赖库添加到我的项目中(项目右键单击 - >属性 - > Android->将其添加为底部的库依赖项.
在我的清单中我有:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>
<permission
android:name="myapp.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<All the uses-permission required like INTERNET, ACCESS_NETWORK_STATE, WRITE_EXTERNAL_STORAGE, FINE AND COARSE LOCATION, etc>
<uses-permission android:name="myapp.permission.MAPS_RECEIVE"/>
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
<application ...>
...
<uses-library android:name="com.google.android.maps" />
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AI..."/>
</application>
Run Code Online (Sandbox Code Playgroud)
在我的mainview.xml中,我有:
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
Run Code Online (Sandbox Code Playgroud)
现在在MainView.java上我有:
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager; …
Run Code Online (Sandbox Code Playgroud) android google-maps android-support-library google-play-services google-maps-android-api-2
我尝试使用Intellij IDEA 12运行Google地图.
我已经尝试过建议:
等等.但不幸的是,这对我不起作用.
我的配置:
1)真正的设备htc wildefire s,android 2.3.5
2)
3)AndroidManifest.xml
:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="ru.ergeslab.TransportScheduleYaroslavl" android:installLocation="auto" android:versionCode="1" android:versionName="1.0"> <uses-feature android:glEsVersion="0x00020000" android:required="true"/> <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"/> <permission android:name="ru.ergeslab.TransportScheduleYaroslavl.permission.MAPS_RECEIVE" android:protectionLevel="signature"/> <uses-permission android:name="ru.ergeslab.TransportScheduleYaroslavl.permission.MAPS_RECEIVE"/> <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="16" /> <application android:label="@string/app_name"> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="MY_KEY"/> <uses-library android:name="com.google.android.maps" /> <activity android:name="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> </application> </manifest>
4) MainActivity: …
android google-maps noclassdeffounderror google-maps-android-api-2
我曾尝试使用之前Google_Play_SERVICE/SAMPLE
使用所有可用选项提供的Google地图示例代码,并显示以下日志.
01-14 17:58:39.773:E/Google Maps Android API(13114):授权失败.
它显示了所有示例Map选项的空白屏幕.
现在我创建了一个新项目,这里是完整的代码: -
Activity.java
public class MapActivity extends FragmentActivity
{
private Context context = this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
GoogleMap gMap = ((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
int result = GooglePlayServicesUtil.isGooglePlayServicesAvailable(context);
Log.e("Maps", "Result int value::" + result);
switch (result) {
case ConnectionResult.SUCCESS:
Log.e("Maps", "RESULT:: SUCCESS");
break;
case ConnectionResult.DEVELOPER_ERROR:
Log.e("Maps", "RESULT:: DE");
break;
case ConnectionResult.INTERNAL_ERROR:
Log.e("Maps", "RESULT:: IE");
break;
case ConnectionResult.INVALID_ACCOUNT:
Log.e("Maps", "RESULT:: IA");
break;
case ConnectionResult.NETWORK_ERROR:
Log.e("Maps", "RESULT:: NE");
break;
case ConnectionResult.RESOLUTION_REQUIRED: …
Run Code Online (Sandbox Code Playgroud) 我试图发布我的应用程序,但谷歌地图有问题.该应用程序包含一个显示地图的活动(MapActivity).在调试模式下运行时,地图工作正常.我在发布模式下签署了我的应用程序,并获得了SHA1.我根据需要在Google控制台上创建了一个新的Android密钥(SHA1; packageName).获得了API密钥
在我的应用程序中,我根据需要引用了google-play-services-lib的副本.我正在使用ADT.
map.xml
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.google.android.gms.maps.SupportMapFragment" />
Run Code Online (Sandbox Code Playgroud)
MapActivity.java
public class MapActivity extends FragmentActivity {
private GoogleMap map;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map);
map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
.getMap();
}
Run Code Online (Sandbox Code Playgroud)
AndroidManifest.xml中
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.rentalcar"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<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"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<permission
android:name="com.example.rentalcar.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.example.rentalcar.permission.MAPS_RECEIVE"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
>
<activity …
Run Code Online (Sandbox Code Playgroud) android google-maps keytool android-keystore android-maps-v2