如何在Android Studio中使用Android库中的Google Play服务
我正在Android Studio中开发一个需要使用Google Play服务的Android库。它已经使用了其他几个jar库,当我的库用于android应用程序项目时,一切都很好 根据Android官方文档,我应该使用gradle导入Google Play服务。但如果我以这种方式导入,当我通过导入android Studio生成的.aar在android应用程序中使用我的库时,只要调用GooglePlayServicesUtil.isGooglePlayServicesAvailable,它就会挂起,Logcat中绝对没有显示日志。因此,我的猜测是,我需要将Google Play服务作为jar而不是gradle.build文件导入。下面是我使用的gradle.build文件:如何在Android Studio中使用Android库中的Google Play服务,android,android-studio,google-play-services,android-library,Android,Android Studio,Google Play Services,Android Library,我正在Android Studio中开发一个需要使用Google Play服务的Android库。它已经使用了其他几个jar库,当我的库用于android应用程序项目时,一切都很好 根据Android官方文档,我应该使用gradle导入Google Play服务。但如果我以这种方式导入,当我通过导入android Studio生成的.aar在android应用程序中使用我的库时,只要调用GooglePlayServicesUtil.isGooglePlayServicesAvailable,它就
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android-library'
repositories {
mavenCentral()
}
dependencies {
//compile 'com.google.android.gms:play-services:4.3.23' //works in my lib, but not my app using the lib
compile fileTree(dir: 'libs', include: '*.jar')
}
android {
compileSdkVersion 19
buildToolsVersion '19.0.1'
defaultConfig {
minSdkVersion 9
targetSdkVersion 19
}
release {
runProguard false
}
}
这是我的lib清单:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="novom.anyware.anywaresdk"
android:versionCode="1"
android:versionName="0.1.0">
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application
android:allowBackup="true"
android:label="@string/app_name"
android:icon="@drawable/ic_launcher">
<service ... />
<receiver ... />
<receiver android:name="novom.anyware.anywaresdk.AWRGeofencesReceiver" />
<service ... />
<receiver ... />
<meta-data android:name="com.google.android.gms.version" android:value="4323000" />
</application>
</manifest>
我读了很多帖子,告诉我要将google-play-services_lib作为一个模块包含在我的Android库项目中,但我尝试的每一个方法都失败了
有什么建议吗?请确保在您的Android SDK管理器中下载了Android支持存储库和Google存储库。这些是maven存储库,包含支持库和Google Play服务 然后,您只需在modules build.gradle中的依赖项中添加以下行:
compile 'com.google.android.gms:play-services:4.2.+'
你不需要任何罐子或AAR
一个简单的build.gradle将如下所示:
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
defaultConfig {
minSdkVersion 9
targetSdkVersion 19
versionCode 1
versionName "1"
}
}
dependencies {
compile 'com.android.support:support-v4:19.0.1'
compile 'com.android.support:appcompat-v7:19.0.1'
compile 'com.google.android.gms:play-services:4.2.+'
}
谷歌似乎还没有更新文档。没有必要再包括jar了,因为我已经尝试了analytics&admob也包括在其中。使用最新版本16更新gradle相关性:
compile 'com.google.android.gms:play-services:4.3.23'
或
转到build.gradle并将其添加到依赖项中
dependencies {
...
compile 'com.google.android.gms:play-services:4.2.+'
}
请确保使用更新“AndroidManifest.xml”
<meta-data android:name="com.google.android.gms.version" android:value="@integer/ google_play_services_version" />
别忘了将项目文件与gradle同步
您也可以重建Project或清理Project以获得更好的效果。我还建议重新启动Android Studio。我已经用这种方式尝试过了。请看我的第二段,它一直挂着,没有发生任何事情。我已经尝试使用我的库项目清单和使用我的库的android应用程序项目清单中的元数据,但两者的行为相同。我的库需要在eclipse中可用,所以我的导入不能基于gradle;我宁愿让我的客户选择他们是否想使用它,而不是强迫他们,如果可能的话。我已经试过这样做了。看我的第二段,它挂起来了,没有发生任何事情。我已经尝试使用我的库项目清单和使用我的库的android应用程序项目清单中的元数据,但两者的行为相同。我的库需要在eclipse中可用,所以我的导入不能是基于gradle的。我已经用这种方式尝试过了,看我的第二段,它挂起了,什么也没有发生。我已经尝试使用我的库项目清单和使用我的库的android应用程序项目清单中的元数据,但两者的行为相同。我的库需要在eclipse中可用,因此我的导入不能基于gradle。它在我最近更新的一个项目中工作,并正确链接到R。您是否通过SDK管理器更新了附加内容?它是否正确地同步build.gradle?是的,如果我在android应用程序项目中使用它,它工作得非常好。但如果我在android库项目中使用它,并将该库作为.aar导入到android应用程序中,我不工作,只要我从Google Play服务中调用某个内容,它就会挂起。我有一个类似的问题,也就是说:请不要多次问同一个问题。最好的做法是用我的另一个帖子替换这篇帖子吗?或者至少编辑它,将用其他词表达的问题包含在这篇文章的编辑部分?在这种情况下,这会变得很困难,因为你在每个不同的问题上都有不同的参与度,但一般来说,是的,编辑一个问题来澄清和添加额外的细节。这里的问题和答案不是一成不变的。
dependencies {
...
compile 'com.google.android.gms:play-services:4.2.+'
}
<meta-data android:name="com.google.android.gms.version" android:value="@integer/ google_play_services_version" />