- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在通过 gradle
使用以下设置:
compileSdkVersion 21
ANDROID_BUILD_MIN_SDK_VERSION=14
ANDROID_BUILD_TARGET_SDK_VERSION=21
ANDROID_BUILD_TOOLS_VERSION=21.0.2
ANDROID_BUILD_SDK_VERSION=21
我的 gradle 文件中还有以下设置:
compile 'com.android.support:support-annotations:21.0.0'
compile 'com.android.support:appcompat-v7:21.0.0'
compile 'com.android.support:support-v4:21.0.0'
我总是收到错误UNEXPECTED TOP LEVEL EXCEPTION
。
但是,当我将 21.0.0
设置为 20.0.0
时,它工作正常……但我无法访问任何 Android API 21 选项。我在这里做错了什么吗?如果没有这个异常(exception),我如何让它编译?除了其他年级项目(facebook 等)之外,我在其他任何地方都没有支持 jar。
这是完整的堆栈跟踪:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:502)
at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:283)
at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:491)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:168)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:302)
at com.android.dx.command.dexer.Main.run(Main.java:245)
at com.android.dx.command.dexer.Main.main(Main.java:214)
at com.android.dx.command.Main.main(Main.java:106)
最佳答案
此消息听起来您的项目太大。
你的方法太多了。 dex只能有65536种方法。
由于 gradle 插件 0.14.0 和 Build Tools 21.1.0 你可以使用 multidex support .
只需在 build.gradle
中添加这些行:
android {
defaultConfig {
...
// Enabling multidex support.
multiDexEnabled true
}
...
}
dependencies {
compile 'com.android.support:multidex:1.0.1'
}
同样在您的 Manifest
中,将 multidex 支持库中的 MultiDexApplication
类添加到应用程序元素中
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.multidex.myapplication">
<application
...
android:name="android.support.multidex.MultiDexApplication">
...
</application>
</manifest>
如果您使用自己的 Application
类,请将父类从 Application
更改为 MultiDexApplication
。
关于android - 更新到最新的 appcompat 和支持库后出现 DexIndexOverflowException 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26515378/
我们在构建应用程序代码时遇到构建错误 DexIndexOverflowException。 似乎我们应用程序中的某些代码或应用程序中包含的库正在调用 Google Play 服务中的函数,调用次数上限
当我的项目中 targetSdkVersion 设置低于 21 时,gradle build 工作正常并且项目正常运行。这是 build.gradle 文件: defaultConfig {
我可以在我的调试和发布变体中成功构建和运行我的 Android 应用程序,没有任何问题。然而,当我尝试运行我的新单元测试(我以前从未进行过)时,我遇到了可怕的 DexIndexOverflowExce
我想制作一个使用谷歌地图 API 的应用程序,我从一个打开谷歌地图 Activity 的简单应用程序开始。 (我从 SDK 管理器下载 google play 服务)。我认为这是一个非常基本的程序,但
我有一个小型 Android 应用程序无法从命令行编译。我可以毫无问题地构建应用程序并将其部署到 Android Studio 中的模拟器,但是当我尝试从命令行构建时,出现以下错误。 gradle c
我通过 gradle 使用以下设置: compileSdkVersion 21 ANDROID_BUILD_MIN_SDK_VERSION=14 ANDROID_BUILD_TARGET_SDK_VE
我正在尝试使用 GoogleApiclient 实现 View.OnClickListener 接口(interface),如下所示 public class MainActivity ext
我使用 Android Studio 开发一个应用程序,我遇到了这个我不知道如何解决的错误。 com.android.dex.DexIndexOverflowException: method ID
我正在通过 gradle 使用以下设置: compileSdkVersion 21 ANDROID_BUILD_MIN_SDK_VERSION=14 ANDROID_BUILD_TARGET_SDK_
在我的项目中,当我想在我的应用程序中将 google play 依赖项添加到 ues google map 时出现问题。问题是当我想运行项目时出现这些错误: UNEXPECTED TOP-LEVEL
我刚刚将我的项目移至 Android Studio 2.2,但我无法生成我的 apk。 我收到此错误消息: 错误:任务 ':app:transformClassesWithDexForRelease'
在我将 gms:play-services:7.5.0 更改为 8.1.0 后,Gradle 构建失败并出现 multi-dex 异常 错误是由于超过 65k 方法限制引起的,可以通过改回版本或删除几
3 周前,我下载了 Google iosched 源代码并将其导入到我的 android studio 中。我可以在我的模拟器以及连接到我的机器的设备中安装和运行该应用程序。然而,上周,当我尝试运行同
我有一个用于 Espresso 测试的库,当我将它添加到我的项目时,我无法编译我的测试。 Gradle 输出这个错误 Caused by: com.android.dex.DexIndexOverfl
我的 Gradle 文件中有以下依赖项: apply plugin: 'com.android.application' android { compileSdkVersion 23
这是我的build.gradle android { ... } compileSdkVersion 23 buildToolsVersion "23.0.1"
Gradle 3.3,WireMock 2.6.0。我通过 Gradle 构建 Android 项目。我用 Espresso、Mockito 编写单元测试,一切正常。 这是我的 build.gradl
我有一个安卓项目。当我将它导入 eclipse 时。它工作正常。但是当我将它导入到 Android studio 时,它给出了:- com.android.dex.DexIndexOverflowEx
在过去的几天里,我一直无法运行 cordova run android(或者更确切地说,ionic run android)来在我的 native 设备上测试我的 Ionic 应用程序。当我运行该命令
我更新了 Android Studio,然后开始收到此错误。这是我的依赖项列表: dependencies { compile fileTree(dir: 'libs', include: ['*.j
我是一名优秀的程序员,十分优秀!