gpt4 book ai didi

java - 谷歌地图 android api v2 应用程序崩溃

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:05:44 26 4
gpt4 key购买 nike

我正在使用 Eclipse helios 和 Android 4.1.2我遵循了以下文档 https://docs.google.com/document/pub?id=19nQzvKP-CVLd7_VrpwnHfl-AE9fjbJySowONZZtNHzw并完全按照教程中的描述完成编码。当我在模拟器上运行我的应用程序时,它显示“除非你更新谷歌播放服务,否则这个应用程序不会运行”但在真实设备上,即索尼 xperia,它有谷歌播放服务更新版本它崩溃了“应用程序已停止工作。感谢任何帮助。

这是我的 list

  <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.emeterfinalapp"
android:versionCode="1"
android:versionName="1.0" >


<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="16" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_CORSE_LOCATION" />

<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
<permission
android:name="com.example.emeterfinalapp.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.example.emeterfinalapp.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>


<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >

<uses-library android:name="com.google.android.maps"/>
<activity
android:name="com.example.emeterfinalapp.EmeterMainActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name"
android:theme="@style/FullscreenTheme" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.emeterfinalapp.EnterLocationActivity"
android:label="@string/title_activity_enter_location"
android:parentActivityName="com.example.emeterfinalapp.EmeterMainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.emeterfinalapp.EmeterMainActivity" />
</activity>

<activity
android:name="com.example.emeterfinalapp.SelectLocation"
android:label="@string/title_activity_select_location"
android:parentActivityName="com.example.emeterfinalapp.EnterMainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.emeterfinalapp.EnterMainActivity" />


</activity>
</application>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="my api key"/>
</manifest>

这是我的 main.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SelectLocation" >

<Button
android:id="@+id/satellite_button"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/mapview_button"
android:text="@string/satellitebuttontext" />


<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"
android:layout_below="@+id/satellite_button"/>


<LinearLayout android:id="@+id/zoom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
/>

<Button
android:id="@+id/mapview_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="@string/mapbuttontext" />

</RelativeLayout>

这是我的 Activity

    package com.example.emeterfinalapp;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;

public class SelectLocation extends FragmentActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_select_location);
// Show the Up button in the action bar.
getActionBar().setDisplayHomeAsUpEnabled(true);
GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());

GoogleMap map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();

}


}

我在我的项目中引用了 google_play_services 库,在我的库中添加了 google_play_service 和 android.support.v4 jar 文件....如果我仍然缺少任何东西,请指导....

我有 api key ,我已将其添加到 maifest 中,请参阅上面的编辑内容...

amd 这是我电话日志中的错误跟踪

  I/ActivityManager(  282): Displayed com.example.emeterfinalapp/.EmeterMainActivity:                +206ms
I/ActivityManager( 282): Displayed com.example.emeterfinalapp/.EnterLocationActivity: +224ms
W/InputDispatcher( 282): channel '2c3dbfd0 com.example.emeterfinalapp/com.example.emeterfinalapp.EmeterMainActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x8
E/InputDispatcher( 282): channel '2c3dbfd0 com.example.emeterfinalapp/com.example.emeterfinalapp.EmeterMainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
W/InputDispatcher( 282): Attempted to unregister already unregistered input channel '2c3dbfd0 com.example.emeterfinalapp/com.example.emeterfinalapp.EmeterMainActivity (server)'
W/InputDispatcher( 282): channel '2c504fb8 com.example.emeterfinalapp/com.example.emeterfinalapp.EnterLocationActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x8
E/InputDispatcher( 282): channel '2c504fb8 com.example.emeterfinalapp/com.example.emeterfinalapp.EnterLocationActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
W/InputDispatcher( 282): Attempted to unregister already unregistered input channel '2c504fb8 com.example.emeterfinalapp/com.example.emeterfinalapp.EnterLocationActivity (server)'

最佳答案

哇...挠了我很久的脑袋终于找到了解决方案首先我按照它的文档使用 DDMS 对真实设备进行了调试,这非常棒然后我发现了以下错误

12-12 15:08:29.458: E/AndroidRuntime(26382): java.lang.RuntimeException: Unable to start     activity ComponentInfo{com.example.emeterfinalapp/com.example.emeterfinalapp.SelectLocation}:     android.view.InflateException: Binary XML file line #17: Error inflating class fragment

然后在几行代码之后出现了另一个引人注目的错误

12-12 15:08:29.458: E/AndroidRuntime(26382): Caused by: java.lang.RuntimeException: API key not found.  Check that <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="your API key"/> is in the <application> element of AndroidManifest.xml

然后我意识到我的 api key 代码是上面错误指出的 list 而不是应用程序的子项,然后我将我的 list 改正为以下

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.emeterfinalapp"
android:versionCode="1"
android:versionName="1.0" >


<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="16" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_CORSE_LOCATION" />

<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
<permission
android:name="com.example.emeterfinalapp.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.example.emeterfinalapp.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>


<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >

<uses-library android:name="com.google.android.maps"/>
<activity
android:name="com.example.emeterfinalapp.EmeterMainActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name"
android:theme="@style/FullscreenTheme" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.emeterfinalapp.EnterLocationActivity"
android:label="@string/title_activity_enter_location"
android:parentActivityName="com.example.emeterfinalapp.EmeterMainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.emeterfinalapp.EmeterMainActivity" />
</activity>

<activity
android:name="com.example.emeterfinalapp.SelectLocation"
android:label="@string/title_activity_select_location"
android:parentActivityName="com.example.emeterfinalapp.EnterMainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.emeterfinalapp.EnterMainActivity" />
</activity>

<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="my api key"/>
</application>

然后它像缩放一样进行,一切都非常完美......使用真实设备进行调试有很大帮助......

关于java - 谷歌地图 android api v2 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13796822/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com