如何在Android Studio中使用Android库中的Google Play服务

如何在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,它就

我正在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文件:

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" />