代码之家  ›  专栏  ›  技术社区  ›  Danail

将MapView添加到Android应用程序时,获取交叉加载程序异常

  •  1
  • Danail  · 技术社区  · 16 年前

    我做了以下工作:

    1. 将maps.jar库添加到我的项目中
    2. 将地图视图添加到活动中
    3. 使用Google API创建了新的虚拟设备(不是普通的目标Android 1.5)
    4. 启动项目

    ....................

    错误/AndroidRuntime(792):由以下原因引起: java.lang.IllegalAccessError: 从预先验证的 班

    错误/AndroidRuntime(792):在 dalvik.system.DexFile.defineClass(本机) (方法)

    错误/AndroidRuntime(792):在

    ............

    我做错了什么?

    3 回复  |  直到 16 年前
        1
  •  3
  •   dyerjo    16 年前

    如果使用Eclipse,请确保在项目构建路径上没有对maps.jar的多个引用。这包括对maps.jar的任何直接引用,或通过Google API库(Google API[Android 1.5])的隐式引用。事实上,在项目构建路径上只有GoogleAPI库就足够了。

    http://andmobidev.blogspot.com

        2
  •  0
  •   android.weasel    15 年前

    如果使用Maven的Android插件,请确保将测试项目对受测应用程序APK的依赖关系声明在“提供”范围内,如AUT的JAR:

        <dependency>
            <groupId>com.example</groupId>
            <artifactId>my-application</artifactId>
            <type>jar</type>
            <version>1.0.0-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
    
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>my-application</artifactId>
            <type>apk</type>
            <version>1.0.0-SNAPSHOT</version>
            <scope>provided</scope>    <!-- ADD THIS -->
        </dependency>   
    

    Maven示例(在编写本文时)都使测试APK依赖于具有默认(即“compile”)作用域的应用程序APK,导致应用程序提供“compile”作用域的任何库也打包到测试APK中。

        3
  •  0
  •   Jason Lewis    15 年前

    我今天遇到了这个问题。我的问题是我将maps.jar添加到我的项目中,而不是更改构建路径以包含 Google APIs [android-2.1-update1] android-2.1-update1 . 仅在项目中包含maps.jar将在 <uses-library> 在正确的地方,并且 RuntimeException (stub)