Java Android Studio:项目已成功编译,但可以';无法在设备上访问Google Play服务
我一直在尝试使用Google Play服务(如地图和GCM)编译我的项目 接下来,我的项目现在编译成功,包含了我需要的所有库。Android Studio还为GCM和地图功能添加了自动完成功能。构建目标设置为Java Android Studio:项目已成功编译,但可以';无法在设备上访问Google Play服务,java,android,google-maps,android-studio,google-play-services,Java,Android,Google Maps,Android Studio,Google Play Services,我一直在尝试使用Google Play服务(如地图和GCM)编译我的项目 接下来,我的项目现在编译成功,包含了我需要的所有库。Android Studio还为GCM和地图功能添加了自动完成功能。构建目标设置为Google API 18 但是,当我打算启动我的应用程序时,它会在点击时崩溃 if(GooglePlayServicesUtil.isGooglePlayServicesAvailable(this) != ConnectionResult.SUCCESS){
Google API 18
但是,当我打算启动我的应用程序时,它会在点击时崩溃
if(GooglePlayServicesUtil.isGooglePlayServicesAvailable(this) != ConnectionResult.SUCCESS){
setContentView(R.layout.error_no_play);
return;
或者当它击中地图碎片时
<fragment
android:id="@+id/map"
android:layout_height="match_parent"
android:layout_width="match_parent"
tools:layout="@layout/fragment_gmap"
class="com.google.android.gms.maps.MapFragment"/>
清单文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="<MyApp>"
android:versionCode="1"
android:versionName="1.0" >
<!-- Permissions required for GMap and Facebook to work -->
<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="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:name="<MyApp>.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="<MyApp>.permission.C2D_MESSAGE" />
<!-- Require OpenGL ES2 for GMap -->
<uses-feature android:glEsVersion="0x00020000"
android:required="true" />
<!-- Because this app is using the GCM library to send messages, the min SDK cannot be lower
than 8. Using SDK11-->
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/MyTheme" >
<receiver
android:name=".MyPushReceiver"
android:permission="com.google.android.gcm.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="<MyApp>" />
</intent-filter>
</receiver>
<activity
android:name="<MyApp>.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>
<!-- Facebook specific activities -->
<activity android:name="com.facebook.LoginActivity" />
<!-- GMap API key -->
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="<MY_KEY>" />
<!-- Facebook App ID -->
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/app_id" />
</application>
</manifest>
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android-library'
dependencies {
compile 'com.android.support:support-v4:13.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']
res.srcDirs = ['res']
}
}
}
我已经处理这个问题一个月了,我仍然没有办法处理它。这是AndroidStudio的已知问题吗?我忘了什么吗?从我从错误日志中读取的信息来看,LIB似乎没有与项目一起编译 也许你的问题是 3.0版本以下不支持片段。但您可以使用
Use your minimumSDk version 3.0 are above 3.0
or
Use SupportMapFragment instead of MapFragment
如果需要教程,请参阅此问题的解决方法
首先,我加倍检查JAVA\u HOME
systemenv变量是否已设置
设置时,我收到编译错误,说明已经添加了一个库:SupportV4
然后我想起我也在使用android studio的Facebook SDK,他们的build.gradle
如下所示,已经过时:
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android-library'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
res.srcDirs = ['res']
}
}
}
解决方案:现在我的facebook的build.gradle
如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="<MyApp>"
android:versionCode="1"
android:versionName="1.0" >
<!-- Permissions required for GMap and Facebook to work -->
<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="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:name="<MyApp>.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="<MyApp>.permission.C2D_MESSAGE" />
<!-- Require OpenGL ES2 for GMap -->
<uses-feature android:glEsVersion="0x00020000"
android:required="true" />
<!-- Because this app is using the GCM library to send messages, the min SDK cannot be lower
than 8. Using SDK11-->
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/MyTheme" >
<receiver
android:name=".MyPushReceiver"
android:permission="com.google.android.gcm.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="<MyApp>" />
</intent-filter>
</receiver>
<activity
android:name="<MyApp>.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>
<!-- Facebook specific activities -->
<activity android:name="com.facebook.LoginActivity" />
<!-- GMap API key -->
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="<MY_KEY>" />
<!-- Facebook App ID -->
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/app_id" />
</application>
</manifest>
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android-library'
dependencies {
compile 'com.android.support:support-v4:13.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']
res.srcDirs = ['res']
}
}
}
我只是用最新的版本替换了gradle插件的版本,并用更新的版本设置了新的support-v4依赖项
tl;dr:如果您正在使用Android Studio的facebook SDK,请仔细检查FacebookSDK的
build.gradle
是否为最新版本。请粘贴您的清单。xmlI已更新问题并添加清单文件。此外,项目编译没有任何问题,只是看起来活动无法访问GooglePlay类。