谷歌地图Android版2版与ActionBarSherlock片段活动工作 [英] Google Maps Android v2 not working with ActionBarSherlock Fragment Activity

查看:129
本文介绍了谷歌地图Android版2版与ActionBarSherlock片段活动工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经按照上<一个步骤href=\"http://stackoverflow.com/questions/13721929/using-actionbarsherlock-with-the-new-supportmapfragment\">Using ActionBarSherlock随着新SupportMapFragment 以使用新的谷歌地图的Andr​​oid版API,但我发现了一些错误是导致应用程序在启动时崩溃。

I've followed the steps on Using ActionBarSherlock With the New SupportMapFragment to use the new Google Maps Android v2 API, but I'm getting some errors that is causing the application to crash on startup.

我使用Maven我的应用程序,所以我张贴我的Andr​​oidManifest和POM文件了。

I'm using Maven on my application, so I'm posting my AndroidManifest and POM files too.

你能帮助我吗?

下面是从logcat的错误:

Here's the error from logcat:

14 12-22:35:41.319:ERROR / AndroidRuntime(8565):致命异常:主要
          java.lang.NoClassDefFoundError的:com.google.android.gms.R $设置样式
          在com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(来源不明)
          在com.google.android.gms.maps.SupportMapFragment.onInflate(来源不明)
          在android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:269)
          在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
          在android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
          在android.view.LayoutInflater.inflate(LayoutInflater.java:408)
          在android.view.LayoutInflater.inflate(LayoutInflater.java:320)
          在android.view.LayoutInflater.inflate(LayoutInflater.java:276)
          在com.actionbarsherlock.internal.ActionBarSherlockCompat.setContentView(ActionBarSherlockCompat.java:853)
          在com.actionbarsherlock.app.SherlockFragmentActivity.setContentView(SherlockFragmentActivity.java:262)
          在br.com.myapp.activities.MainActivity.onCreate(MainActivity.java:19)
          在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
          在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
          在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
          在android.app.ActivityThread.access $ 1500(ActivityThread.java:117)
          在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:935)
          在android.os.Handler.dispatchMessage(Handler.java:99)
          在android.os.Looper.loop(Looper.java:130)
          在android.app.ActivityThread.main(ActivityThread.java:3687)
          在java.lang.reflect.Method.invokeNative(本机方法)
          在java.lang.reflect.Method.invoke(Method.java:507)
          在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:867)
          在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
          在dalvik.system.NativeStart.main(本机方法)

12-22 14:35:41.319: ERROR/AndroidRuntime(8565): FATAL EXCEPTION: main java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source) at com.google.android.gms.maps.SupportMapFragment.onInflate(Unknown Source) at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:269) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) at android.view.LayoutInflater.rInflate(LayoutInflater.java:623) at android.view.LayoutInflater.inflate(LayoutInflater.java:408) at android.view.LayoutInflater.inflate(LayoutInflater.java:320) at android.view.LayoutInflater.inflate(LayoutInflater.java:276) at com.actionbarsherlock.internal.ActionBarSherlockCompat.setContentView(ActionBarSherlockCompat.java:853) at com.actionbarsherlock.app.SherlockFragmentActivity.setContentView(SherlockFragmentActivity.java:262) at br.com.myapp.activities.MainActivity.onCreate(MainActivity.java:19) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) at android.app.ActivityThread.access$1500(ActivityThread.java:117) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:130) at android.app.ActivityThread.main(ActivityThread.java:3687) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) at dalvik.system.NativeStart.main(Native Method)

AndroidManifest:

AndroidManifest:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="br.com.myapp" android:versionCode="1" android:versionName="2.0.0">
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17"></uses-sdk>
<uses-feature
    android:name="android.hardware.touchscreen"
    android:required="false" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >
</uses-permission>
<permission android:name="br.com.myapp.permission.MAPS_RECEIVE"
            android:protectionLevel="signature" />
<uses-permission android:name="br.com.myapp.permission.MAPS_RECEIVE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />


<application android:label="@string/app_name" android:icon="@drawable/rp_icon"
             android:logo="@drawable/logo_actionbar" android:theme="@style/Theme.Sherlock.Light.DarkActionBar">

    <uses-library android:name="com.google.android.maps" />
    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="MyKeyXXXXXXXXXXXXXXXXXXXXXXXXX" />

    <activity android:name=".activities.MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
</application>
    </manifest>

pom.xml中:

POM.xml:

    <?xml version="1.0" encoding="UTF-8"?>

http://maven.apache.org/maven-v4_0_0.xsd>
    4.0.0
    br.com.myapp
    的myapp-机器人
    2.0.0
    APK
    的myapp <​​/ P>

http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 br.com.myapp myapp-android 2.0.0 apk myapp

<properties>
    <platform.version>4.2
        </platform.version>
</properties>

<dependencies>
    <dependency>
        <groupId>com.google.android</groupId>
        <artifactId>android</artifactId>
        <version>4.2</version>
    </dependency>
    <dependency>
        <groupId>com.loopj.android.http</groupId>
        <artifactId>async-http-client</artifactId>
        <version>1.4.2</version>
    </dependency>
    <dependency>
        <groupId>com.google.android</groupId>
        <artifactId>support-v4</artifactId>
        <version>r7</version>
    </dependency>
    <dependency>
        <groupId>com.actionbarsherlock</groupId>
        <artifactId>actionbarsherlock</artifactId>
        <version>4.2.0</version>
        <type>apklib</type>
    </dependency>
    <dependency>
        <groupId>com.google.android.gms</groupId>
        <artifactId>google-play-services</artifactId>
        <version>4</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>com.jayway.maven.plugins.android.generation2</groupId>
            <artifactId>android-maven-plugin</artifactId>
            <version>3.1.1</version>
            <configuration>
                <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile>
                <assetsDirectory>${project.basedir}/assets</assetsDirectory>
                <resourceDirectory>${project.basedir}/res</resourceDirectory>
                <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory>
                <sdk>
                    <platform>10</platform>
                </sdk>
                <undeployBeforeDeploy>true</undeployBeforeDeploy>
            </configuration>
            <extensions>true</extensions>
        </plugin>

        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
</build>

推荐答案

是否包含在谷歌地图库的完整源代码?有资源在那里(因此参考java.lang.NoClassDefFoundError的:com.google.android.gms.R $设置样式在com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(来源不明))。

Did you include the full source from the Google Maps library? There are resources there (hence the reference to java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)).

这是不够的,只是引用了谷歌播放-services.jar文件。仔细检查README.txt文件在谷歌播放服务项目的根。

It's not enough to just reference the google-play-services.jar file. Double check the README.txt file at the root of the Google Play Services project.

这篇关于谷歌地图Android版2版与ActionBarSherlock片段活动工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆