- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在创建 APK 文件时遇到了这个错误:
Error:The number of method references in a .dex file cannot exceed 64K. Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html
我引用了这个tutorial解决这个问题,但我仍然收到这个错误。
我在我的项目中使用了 MultiDex,如下所示:
在用于 sdk 16 的 biuld.gradle 中:
apply plugin: 'com.android.application'
repositories {
jcenter()
mavenCentral()
}
android {
compileSdkVersion 24
buildToolsVersion "24.0.0"
defaultConfig {
applicationId "com.saly.test"
minSdkVersion 16
targetSdkVersion 24
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
productFlavors {
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile project(':volley')
compile 'com.android.support:multidex:1.0.1'
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.0.0'
compile 'com.android.support:design:24.0.0'
compile 'com.android.support:recyclerview-v7:24.0.0'
compile 'com.android.support:cardview-v7:24.0.0'
compile 'com.android.support:support-v4:24.0.0'
compile 'com.google.android.gms:play-services:9.2.1'
compile 'com.google.android.gms:play-services-location:9.2.1'
compile 'com.google.android.gms:play-services-gcm:9.2.1'
compile 'com.google.android.gms:play-services-maps:9.2.1'
compile 'com.onesignal:OneSignal:2.+@aar'
}
在 sdk 16 的 list 中:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
...>
<application
...
android:name="android.support.multidex.MultiDexApplication">
...
</application>
</manifest>
现在我得到了新的错误:
Error:UNEXPECTED TOP-LEVEL ERROR: Error:java.lang.OutOfMemoryError: GC overhead limit exceeded Error: at com.android.dx.cf.cst.ConstantPoolParser.parse0(ConstantPoolParser.java:289) Error: at com.android.dx.cf.cst.ConstantPoolParser.parse(ConstantPoolParser.java:150) Error: at com.android.dx.cf.cst.ConstantPoolParser.parseIfNecessary(ConstantPoolParser.java:124) Error: at com.android.dx.cf.cst.ConstantPoolParser.getPool(ConstantPoolParser.java:115) Error: at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:491) Error: at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406) Error: at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388) Error: at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251) Error: at com.android.dx.command.dexer.Main.parseClass(Main.java:772) Error: at com.android.dx.command.dexer.Main.access$1500(Main.java:85) Error: at com.android.dx.command.dexer.Main$ClassParserTask.call(Main.java:1700) Error: at com.android.dx.command.dexer.Main.processClass(Main.java:755) Error: at com.android.dx.command.dexer.Main.processFileBytes(Main.java:723) Error: at com.android.dx.command.dexer.Main.access$1200(Main.java:85) Error: at com.android.dx.command.dexer.Main$FileBytesConsumer.processFileBytes(Main.java:1653) Error: at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) Error: at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) Error: at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) Error: at com.android.dx.command.dexer.Main.processOne(Main.java:677) Error: at com.android.dx.command.dexer.Main.processAllFiles(Main.java:569) Error: at com.android.dx.command.dexer.Main.runMultiDex(Main.java:366) Error: at com.android.dx.command.dexer.Main.run(Main.java:275) Error: at com.android.dx.command.dexer.Main.main(Main.java:245) Error: at com.android.dx.command.Main.main(Main.java:106) :app:transformClassesWithDexForDebug FAILED Error:Execution failed for task ':app:transformClassesWithDexForDebug'. com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_66\bin\java.exe'' finished with non-zero exit value 3
然后我将我的最小 sdk 更改为 21 以修复此错误,但它不起作用。
这是我的 build.gradle for sdk 21:
apply plugin: 'com.android.application'
repositories {
jcenter()
mavenCentral()
}
android {
compileSdkVersion 24
buildToolsVersion "24.0.0"
defaultConfig {
applicationId "com.saly.test"
minSdkVersion 21
targetSdkVersion 24
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
productFlavors {
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile project(':volley')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.0.0'
compile 'com.android.support:design:24.0.0'
compile 'com.android.support:recyclerview-v7:24.0.0'
compile 'com.android.support:cardview-v7:24.0.0'
compile 'com.android.support:support-v4:24.0.0'
compile 'com.google.android.gms:play-services:9.2.1'
compile 'com.google.android.gms:play-services-location:9.2.1'
compile 'com.google.android.gms:play-services-gcm:9.2.1'
compile 'com.google.android.gms:play-services-maps:9.2.1'
}
我该如何修复这个错误?
提前致谢。
最佳答案
只需添加这些行
dexOptions {
javaMaxHeapSize "4g"
}
在你的gradle脚本里面的任何地方
android {
....
dexOptions {
javaMaxHeapSize "4g"
}
....
}
关于java - 如何修复 minSdkVersion 21 中的 DEX 64K 方法限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38498069/
在我的应用程序中我正在使用 我想运行我的应用程序 android:minSdkVersion="8"。但是我正在使用 ActionBar 和 Fragment 并且使用了很多最新的支持的版本。那么如
我正在使用 Uber旨在与 Android SDK 16 配合使用的 SDK。我当前的 minSdkVersion 是 14。我可以像这样使用它 - if (android.os.Build.VERS
我在 www/config.xml 中将 minSdkVersion 设置为 8: 当我运行“phonegap local build android”时,会生成以下文件: find /Users
我的应用不再支持 Android 4.x 和 5.x,仅支持 Android 6.0 及更高版本。出于这个原因,在我的 app/build.gradle 中,我将 minSdkVersion 16 更
我已经使用 Eclipse 和 android 2.2 编写了我的应用程序。但是我认为我的应用程序适用于以前的版本,因此它将允许更多用户使用我的应用程序。问题是我不确定...例如,我正在使用我认为是较
我编写了一个完美运行的程序,直到市场要求我添加“minSdkVersion”。因为我使用的是 2.3.3 功能,所以我将它设置为 10,但随后我的程序停止了从磁盘访问文件的能力(所有文件访问都是错误的
我已经在 list 中设置了 minSdkVersion。现在我想在代码中检索它。这应该很容易,但我不明白。我该怎么做? 最佳答案 minSDKVersion 是 Android list 中的一项设
在下面找到谷歌在其最新的谷歌 IO-13 计划中优化应用程序平板电脑的说法。我的问题是:- 为什么我的应用程序必须具有大于 11 的最小 sdk 版本才能使其针对平板电脑进行优化?这意味着如果我支持在
关于NetworkOnMainThreadException,我做了这样的测试:我只在我的eclipse中安装了android-15,我设置了uses-sdk android:minSdkVersio
当通过向导创建新项目时出现错误,那真是太令人沮丧了。 我只是用 MinSdk = 9 创建新项目,让应用程序在 gingerbread 上运行这给了我以下错误: Error:Execution fai
我完全想不出为什么我似乎无法从 list 中为我的应用程序设置 minSdkVersion。我正在使用 Ubuntu OS 从终端编译 - 只需使用> ant debug 这是我的 list :
这个问题在这里已经有了答案: Image does not show completely white despite it's correctly white (6 个答案) 关闭 7 年前。 我
我在 AndroidManifest.xml 和 build.gradle 中有一个 minSdkVersion 设置为 14 的 android studio 项目 现在我想写一些自动化测试,所以我
我一直在构建一个项目并在 Android 模拟器上对其进行测试。 我意识到我将 minSdkVersion 设置为 10。现在,我有一部手机可以测试程序,但它的 sdk 版本是 7。 我尝试进入 li
当我新建一个flutter app时,android\app\build.gradle的内容是 ... defaultConfig { // TODO: Specify your ow
我的应用程序中需要这段代码: //compile 'com.google.android.gms:play-services:6.+' 但我还需要 minSdkVersion 为 7,但这不起作用。错
我在开发应用时将 minSdkVersion 设置为 3,targetSdkVersion 设置为 8。 我的应用程序已发布,并且可以在从 Android 1.5 到 3.0 的所有设备上运行虽然它可
我创建了一个使用 android-viewflow 的应用程序并且它有 minSdkVersion="1" ,但是当我在 Google Play 上发布它时我发现它不兼容只需这些设备 三星 Galax
例如,当我发布将 minSdkVersion 从 8 更改为 16 的更新时:已经下载我的应用程序的 api 8 用户会怎样? 最佳答案 他们无法安装更新,将使用旧版本直到最后。根据您使用的应用商店,
我想使用不同的 android:minSdkVersion 构建我的应用程序的两个不同版本。在较低的 sdk 版本中,我会简单地省略需要较高 sdk 的功能。 (禁用需要更高版本的用户界面项) 我知道
我是一名优秀的程序员,十分优秀!