Android 无法设置Google Play服务
我被困在谷歌Play服务上一天多了。这是谷歌创建的一个非常糟糕的程序。为什么这么难?? 我想使用Google Play服务来开发一些依赖于地图的应用程序。我已经一步一步地尝试了一切,在许多网站上讨论过,但仍然无法得到它。我认为只有StackOverflow可以在这种情况下提供帮助。我不能给出所有参考网站的链接,但我给出了其中一些-Android 无法设置Google Play服务,android,eclipse,google-play-services,android-mapview,android-maps-v2,Android,Eclipse,Google Play Services,Android Mapview,Android Maps V2,我被困在谷歌Play服务上一天多了。这是谷歌创建的一个非常糟糕的程序。为什么这么难?? 我想使用Google Play服务来开发一些依赖于地图的应用程序。我已经一步一步地尝试了一切,在许多网站上讨论过,但仍然无法得到它。我认为只有StackOverflow可以在这种情况下提供帮助。我不能给出所有参考网站的链接,但我给出了其中一些- 我正在使用EclipseADT包。Google Play服务在Android SDK中有一个打勾的标记,表示它已安装。它也位于适当的目录中。我正在提供我的项目的
我正在使用EclipseADT包。Google Play服务在Android SDK中有一个打勾的标记,表示它已安装。它也位于适当的目录中。我正在提供我的项目的快照-
上面的snoapshot显示了activity_main.xml,以及启动应用程序和项目树结构时的错误。它还显示google_play_服务_lib已经导入
public class MainActivity extends ActionBarActivity {
static final LatLng HAMBURG = new LatLng(53.558, 9.927);
static final LatLng KIEL = new LatLng(53.551, 9.993);
private GoogleMap map;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
.getMap();
Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG)
.title("Hamburg"));
Marker kiel = map.addMarker(new MarkerOptions()
.position(KIEL)
.title("Kiel")
.snippet("Kiel is cool")
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.ic_launcher)));
// Move the camera instantly to hamburg with a zoom of 15.
map.moveCamera(CameraUpdateFactory.newLatLngZoom(HAMBURG, 15));
// Zoom in, animating the camera.
map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
}
该项目不包含任何错误。我还将代码添加到proguard-project.txt中,android-manifest.xml是
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.latlongfrommap"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="17"
android:targetSdkVersion="19" />
<uses-permission android:name="com.vogella.android.locationapi.maps.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.latlongfrommap.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>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyAQXXXXXXXXXXXXXXpADfMsO4fF0eEXdRE" />
</application>
我还从控制台生成了API键。活动主界面的图形布局也有一个警告。
请根据您宝贵的建议帮助我。谢谢你。编辑:
在官方的设置指南中,他们没有提到应该将jar文件添加到库中。。我这么做是因为我在很多网站上都找到了。。这是正确的吗??。。activity_main.xml未检测到片段标记。。这有什么问题吗??
是的,关于jar文件我是对的。不应添加它。这是在制造某种冲突。但我仍然有错误
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.latlongfrommap/com.example.latlongfrommap.MainActivity}: android.view.InflateException: Binary XML file line #11: Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2314)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2388)
at android.app.ActivityThread.access$800(ActivityThread.java:148)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1292)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5312)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)
Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class fragment
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:377)
at android.app.Activity.setContentView(Activity.java:2154)
at android.support.v7.app.ActionBarActivity.superSetContentView(ActionBarActivity.java:217)
at android.support.v7.app.ActionBarActivityDelegateICS.setContentView(ActionBarActivityDelegateICS.java:110)
at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:77)
at com.example.latlongfrommap.MainActivity.onCreate(MainActivity.java:25)
at android.app.Activity.performCreate(Activity.java:5953)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1128)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2267)
... 10 more
Caused by: java.lang.SecurityException: The Maps API requires the additional following permissions to be set in the AndroidManifest.xml to ensure a correct behavior:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
at com.google.maps.api.android.lib6.c.ck.a(Unknown Source)
at com.google.maps.api.android.lib6.c.i.a(Unknown Source)
at com.google.maps.api.android.lib6.c.el.a(Unknown Source)
at com.google.maps.api.android.lib6.c.ab.a(Unknown Source)
at com.google.maps.api.android.lib6.c.aa.a(Unknown Source)
at com.google.android.gms.maps.internal.x.onTransact(SourceFile:107)
at android.os.Binder.transact(Binder.java:380)
at com.google.android.gms.maps.internal.IMapFragmentDelegate$a$a.onCreateView(Unknown Source)
at com.google.android.gms.maps.MapFragment$a.onCreateView(Unknown Source)
at com.google.android.gms.dynamic.a$4.b(Unknown Source)
at com.google.android.gms.dynamic.a.a(Unknown Source)
at com.google.android.gms.dynamic.a.onCreateView(Unknown Source)
at com.google.android.gms.maps.MapFragment.onCreateView(Unknown Source)
at android.app.Fragment.performCreateView(Fragment.java:2053)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:870)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1045)
at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1147)
at android.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2118)
at android.app.Activity.onCreateView(Activity.java:5302)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:733)
... 23 more
致命异常:main
java.lang.RuntimeException:无法启动活动组件信息{com.example.latlongfrommap/com.example.latlongfrommap.MainActivity}:android.view.InflateException:二进制XML文件行#11:膨胀类片段时出错
位于android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2314)
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2388)
在android.app.ActivityThread.access$800(ActivityThread.java:148)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1292)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:135)
位于android.app.ActivityThread.main(ActivityThread.java:5312)
位于java.lang.reflect.Method.invoke(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:372)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)
原因:android.view.InflateException:二进制XML文件行#11:膨胀类片段时出错
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
在android.view.LayoutInflater.充气(LayoutInflater.java:504)
在android.view.LayoutInflater.inflate(LayoutInflater.java:414)
在android.view.LayoutInflater.充气(LayoutInflater.java:365)
位于com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:377)
位于android.app.Activity.setContentView(Activity.java:2154)
位于android.support.v7.app.ActionBarActivity.superSetContentView(ActionBarActivity.java:217)
位于android.support.v7.app.ActionBarActivityDelegateICS.setContentView(ActionBarActivityDelegateICS.java:110)
位于android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:77)
位于com.example.latlongfrommap.MainActivity.onCreate(MainActivity.java:25)
位于android.app.Activity.performCreate(Activity.java:5953)
位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1128)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2267)上
... 10多
原因:java.lang.SecurityException:Maps API要求在AndroidManifest.xml中设置以下附加权限,以确保行为正确:
位于com.google.maps.api.android.lib6.c.ck.a(未知来源)
位于com.google.maps.api.android.lib6.c.i.a(未知来源)
位于com.google.maps.api.android.lib6.c.el.a(未知来源)
位于com.google.maps.api.android.lib6.c.ab.a(未知来源)
位于com.google.maps.api.android.lib6.c.aa.a(未知来源)
位于com.google.android.gms.maps.internal.x.onTransact(源文件:107)
位于android.os.Binder.transact(Binder.java:380)
在com.google.android.gms.maps.internal.imapfracentdelegate$a$a.onCreateView上(来源未知)
位于com.google.android.gms.maps.MapFragment$a.onCreateView(未知来源)
在com.google.android.gms.dynamic.a$4.b(未知来源)
位于com.google.android.gms.dynamic.a.a(未知来源)
位于com.google.android.gms.dynamic.a.onCreateView(未知来源)
位于com.google.android.gms.maps.MapFragment.onCreateView(未知来源)
位于android.app.Fragment.performCreateView(Fragment.java:2053)
在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:870)上
位于android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1045)
在android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1147)
在android.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2118)
位于android.app.Activity.onCreateView(Activity.java:5302)
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:733)
... 23多
感谢上帝。终于完成了。许多网站说,在网站上做了所有的描述之后,你需要做一些额外的事情。其中有些确实有用,有些则没有。在你像我一样浪费一整天的时间之前,请记住以下几点-
“您必须在库外部添加google-play-services.jar”。那完全不是真的。如果您已经导入了google-play-services_lib
项目,这是添加jar的第一步,那么它会给您的程序带来冲突。因此,要么添加jar,要么导入google-
<uses-permission android:name="com.vogella.android.locationapi.maps.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Google+ com.google.android.gms:play-services-plus:11.0.1
Google Account Login com.google.android.gms:play-services-auth:11.0.1
Google Actions, Base Client Library com.google.android.gms:play-services-base:11.0.1
Google Address API com.google.android.gms:play-services-identity:11.0.1
Google Analytics com.google.android.gms:play-services-analytics:11.0.1
Google Awareness com.google.android.gms:play-services-awareness:11.0.1
Google Cast com.google.android.gms:play-services-cast:11.0.1
Google Cloud Messaging com.google.android.gms:play-services-gcm:11.0.1
Google Drive com.google.android.gms:play-services-drive:11.0.1
Google Fit com.google.android.gms:play-services-fitness:11.0.1
Google Location and Activity Recognition com.google.android.gms:play-services-location:11.0.1
Google Maps com.google.android.gms:play-services-maps:11.0.1
Google Mobile Ads com.google.android.gms:play-services-ads:11.0.1
Google Places com.google.android.gms:play-services-places:11.0.1
Mobile Vision com.google.android.gms:play-services-vision:11.0.1
Google Nearby com.google.android.gms:play-services-nearby:11.0.1
Google Panorama Viewer com.google.android.gms:play-services-panorama:11.0.1
Google Play Game services com.google.android.gms:play-services-games:11.0.1
SafetyNet com.google.android.gms:play-services-safetynet:11.0.1
Android Pay com.google.android.gms:play-services-wallet:11.0.1
Android Wear com.google.android.gms:play-services-wearable:11.0.1