如何在Android Studio中使用Google Maps Api v2创buildAndroid应用程序?
在Android Studio中尝试使用GoogleMap创build应用程序时遇到了很多麻烦。
在使用Eclipse作为我的IDE之前(几乎)没有任何问题,我遵循以下指南:
https://developers.google.com/maps/documentation/android/start
我之前从来没有使用过Android Studio,并且在整个项目/模块范例中遇到困难。
我无法成功configurationGoogle Play服务SDK http://developer.android.com/google/play-services/setup.html
这是我得到的奇怪的错误之一:
摇篮: 失败:生成失败,出现exception。 * 什么地方出了错: 执行失败的任务':MyMapApp:compileDebug'。 >编译失败; 详细信息请参阅编译器错误输出。 *尝试: 运行--stacktrace选项来获取堆栈跟踪。 运行--info或--debug选项来获得更多的日志输出。
最后,我设法使用Android Studio运行GoogleMapsAPIv2项目。
编辑:正如Xavier所述,这种方法只适用于非Gradle项目。 本教程中使用的UI部分将从AndroidStudio中排除。 所以如果你有自己的使用Gradle构build系统的项目,你需要手动修改build.gradleconfiguration文件,因为Android Studio UI不会影响它。
编辑2:随着AndroidStudio v0.1.1发布,负责模块依赖的UI部分已经被淘汰,所以现在我们需要通过build.gradle文件手动更新依赖。 用于更改gradle依赖关系的UI将在下一个版本中发布
编辑3:对于那些仍然试图使用这种方法 – 请注意,它已经过时,不再工作
这是我做的:
1)我从Google Play服务示例中获取maps
项目并将其复制到单独的目录中。 这将是我们将尝试运行的我们的MapsApiV2项目。 在我的Mac上,它位于<sdk_location>/extras/google/google_play_services/samples
我将它放在~/Work/stack/
2)复制google-play-services_lib
项目目录到相同的地方( ~/Work/stack
),所以我的工作目录看起来像这样。 顺便说一下,lib项目位于<sdk_location>/extras/google/google_play_services/libproject
:
3)现在让我们打开Android Studio。 在欢迎屏幕上按Import Project
并从~/Work/stack/maps
导入我们的maps
项目。 现在我们看到很多关于GMS库的未知引用的抱怨:
4)现在我们需要添加Google Play服务作为参考库。 去View -> Open Module Settings
5)在Modules
选项卡上,单击+
button并selectImport Module
并导入您的GooglePlayServices库。 我没有改变任何东西,所以点击Next
到最后:
6)现在你需要引用这个导入的库。 再次打开此屏幕(转到View -> Module Settings
)。 确保你有你的maps
项目和Dependency
选项卡。 点击+
添加依赖项,然后selectLibrary
。 在那里select你的input库:
7)现在我们可以看到它不是在抱怨GMS
库,而是抱怨支持库:
8)我们来修复它。 我的支持库位于<sdk location>/extras/android/support/v13/android-support-v13.jar
。 所以我们尝试将其添加到我们的工作区。 转到View -> Open Module Settings
然后selectLibraries
选项卡。 select+
– > Java
并select支持库:
9)现在要问你哪个项目添加这个lib,所以确保你select了你的maps
项目:
10)此时代码应该编译没有问题。 只要确保你在Manifest中定位了正确的SDK版本。
玩的开心
除了我正在创build一个新的项目,我遵循了相同的指示。 在项目结构下,我删除了Android-Gradle方面,并且能够成功构build。 可以select更新Gradle构build文件并将Android-Gradle构件添加到播放服务库中。
注:我更改了Google Play服务目录的名称。
为Google Play服务库build.gradle
。
apply plugin: 'android-library' buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } dependencies { compile files('libs/android-support-v4.jar') compile files('google-play-services.jar') } android { compileSdkVersion 17 buildToolsVersion '17.0.0' sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aild.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } } }
build.gradle
testing应用程序。
buildscript { repositories { maven { url 'http://repo1.maven.org/maven2' } } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } apply plugin: 'android' dependencies { compile files('libs/android-support-v4.jar') compile project(':lib-google-play-services') compile files('../lib-google-play-services/libs/google-play-services.jar') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 11 targetSdkVersion 16 } }
我已经尝试过很多关于此的教程,但最终find了一个似乎适用于Android Studio和Gradle的简单解决scheme
我刚刚在我的Mac上安装了Android Studio 0.2.3,这些步骤使我能够在新的Hello World项目模板上查看地图片段:
1)单击Android Studio工具栏中的SDKpipe理器button。
2)在“Extras”下find“Google Play服务”并下载。
3)在您的src目录的build.gradle文件中,将这一行添加到依赖关系:
compile 'com.google.android.gms:play-services:3.1.36'
4)按照本教程的顺序安装您的API密钥: https : //developers.google.com/maps/documentation/android/start#the_google_maps_api_key
5)添加片段到你的布局xml:
<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.MapFragment"/>
6)你现在应该能够在你的设备上运行你的项目。
以下是我在Android Studio 0.2
中使用Google Maps API V2
一个项目的configuration,其中包含gradle 0.5.+.
还有其他模块,如ActiobarSherlock
和一个自定义的ActiobarSherlock
被使用,我只是让他们以防万一有人需要他们。
项目结构:
1)TOP目录settings.gradle:
include ':SuperModule', ':libraries:actionbarsherlock', ':libraries:numberPicker'
2)TOP目录build.gradle
task assemble {}
(你们中的一些人可能面临着找不到的任务,那就是为什么你放这个线!)
3)超级模块build.gradle
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } apply plugin: 'android' dependencies { compile 'com.google.android.gms:play-services:3.1.36' compile 'com.android.support:gridlayout-v7:13.0.0' compile project(':libraries:actionbarsherlock') compile project(':libraries:numberPicker') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 8 targetSdkVersion 16 } }
注意这里的依赖关系。 它的actiobarSherlock(ABS)和NumberPicker,用作android库。 我也使用播放服务(这就是为什么min sdk必须> = 8),和布局库(对于空间元素)支持库不包括在这里,因为它包含在ABS库!
Actionbar Sherlock build.gradle:
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } apply plugin: 'android-library' dependencies { compile 'com.android.support:support-v4:13.0.0' } android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 7 targetSdkVersion 16 } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } instrumentTest.setRoot('tests') } }
NumberPicker build.gradle没有显示,因为它具有与其他逻辑相同的逻辑。
我写了一篇文章,并使用Location界面和Google Maps API创build了一个地图应用程序。 这将通过我尝试启动和运行地图应用程序时遇到的许多特殊情况,包括哪些SDK要包含,要导入哪些库,在Android清单中设置什么以及如何更改gradle文件。 希望这可以帮助
http://www.todroid.com/how-to-create-a-google-map-application-using-android-studio/
我有一个类似的问题,但它只是它找不到com.google.android.gms.maps包(它一直说它不存在)。 这是在我根据Google自己的文档上的迁移教程正确导入了所有内容之后( http://developer.android.com/sdk/installing/migrate.html);
无论如何,导入一切后,我仍然有问题,不知道如何设置构buildpath(或非eclipse等效)。
我只需按照以下一半的教程,删除已在模块设置窗口中列出的google-play-services库,然后重新添加。
我希望这对其他人有用。
我也有类似的问题,我解决了像库导入google_play_services.jar而不是谷歌播放服务项目像一个模块。