阅读以下问题后:
Why are permissions being automatically added to my AndroidManifest when including Google Play Services library
我意识到我需要在build.gradle
中更改已编译的项目。
目前我有compile 'com.google.android.gms:play-services:7.5.0'
但这增加了许多不必要的权限,如位置,读写SD卡的权限,完全网络访问,查看网络连接等。我只使用Google Play服务作为游戏中的排行榜和成就。因此,我认为我的应用无需任何权限。
那么我应该编译什么呢?我必须列出具体的服务,但我无法找到服务列表,以便我可以选择。
这将是:
compile 'com.google.android.gms:play-services-achievements7.5.0'
compile 'com.google.android.gms:play-services-leaderboards7.5.0'
对于仅在Google Play上使用这些服务的游戏,我希望获得尽可能少的权限。
我还在我的Manifest中声明了这些权限:
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
任何人都可以为我提供适当的编译服务吗?
更新 这是我的build.gradle文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "mjj.fling"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
`dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.google.android.gms:play-services-games:7.5.0'
compile project(':BaseGameUtils')
apply plugin: 'com.google.gms.google-services'`
}
FAILURE: Build failed with an exception.
错误:多个包含包名称的库&#39; com.google.android.gms&#39; 您可以使用android.enforceUniquePackageName = false暂时禁用此错误 但是,这是暂时的,将在1.0
中强制执行
这是我在重建项目时遇到的错误。
建立失败
答案 0 :(得分:3)
结帐https://developers.google.com/android/guides/setup以获取Google提供的有关如何设置Play服务的信息。特别是签出标题为Selectively compiling APIs into your executable
的小节。它向您展示了如何分解要编译的服务。您可能只想使用游戏中的一个:
com.google.android.gms:play-services-games:7.5.0
除了使用较少的权限外,它还会减少您的APK大小和方法数量,这两者都是好事,而不是拉入整个Play服务库。