创建APK文件时出错:
错误:. dex文件中方法引用的数量不能超过64K。https://developer.android.com/tools/building/multidex.html了解如何解决此问题
我引用了本教程来修复此问题,但仍然出现此错误。
我在我的项目中使用了MultiDex,如下所示:
在biuld。sdk 16的渐变:
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的清单中:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
...>
<application
...
android:name="android.support.multidex.MultiDexApplication">
...
</application>
</manifest>
现在我得到了新的错误:
错误:ile.parseOutOfMemoryError:GC开销限制超出错误:在ile.java:388ConstantPoolPcom.android.dx.cf.direct.0(ConstantPoolPile.get)错误:在ile.java:251ConstantPoolPcom.android.dx.command.dexer.(ConstantPoolPain.parse)错误:在ain.java:772ConstantPoolPcom.android.dx.command.dexer.IfNecessary(ConstantPoolPain.access)错误:在ain.java:85ConstantPoolPcom.android.dx.command.dexer.池(ConstantPoolPask.call)错误:在com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:491)错误:在com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)错误:在DirectClassFjava.lang.ToInterfacesIfNecessary(DirectClassFcom.android.dx.cf.cst.)错误:在arser.parseDirectClassFarser.java:289Magic(DirectClassFcom.android.dx.cf.cst.)错误:在arser.parseMarser.java:150(Mcom.android.dx.cf.cst.)错误:在arser.parseMarser.java:1241500美元(Mcom.android.dx.cf.cst.)错误:在arser.getMain$ClassParserTarser.java:115(Main.ClassPathOpenern. Process Archive(ClassPathOpenern. java: 284)错误:在com. android. dx. cf. Direct。ClassPathOpenern. Process One(ClassPathOpenern. java: 166)错误:在com. android. dx. cf. Direct。ClassPathOpenern. Process(ClassPathOpenern. java: 144)错误:在com. android. dx.命令. dexe。Main. Process One(Main. java: 677)错误:在com. android. dx.命令. dexe。Main. Process AllFiles(Main. java: 569)错误:在com. android. dx.命令. dexe。Main. runMultiDex(Main. java: 366)错误:在com. android. dx.命令. dexe。Main. run(Main. java: 275)错误:在com. android. dx.命令. dexe。Main. main(Main. java
然后我将我的最小sdk更改为21以修复此错误,但它不起作用。
这是我的身材。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'
}
如何修复此错误?
提前谢谢。
您只需添加:
android {
compileSdkVersion 24
buildToolsVersion "24.0.0"
defaultConfig {
...
minSdkVersion 14
targetSdkVersion 21
...
// Enabling multidex support.
multiDexEnabled true
}
}
dependencies {
compile 'com.android.support:multidex:1.0.1'
}
这是AndroidManifest。xml:
<?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>
或者,如果您有自己的应用程序
类的实现,请在
应用程序中重写
attachBaseContext
方法,如下所示:
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
只要加上这些线
dexOptions {
javaMaxHeapSize "4g"
}
在gradle脚本中的任何位置
android {
....
dexOptions {
javaMaxHeapSize "4g"
}
....
}
我已经卸载并安装了3次Homebrew现在,因为它似乎从来不允许我安装任何东西,因为它拒绝我的权限,在大多数安装结束。 作为示例,我将发布当前面临的libjpeg下载场景。 我尝试安装libjpeg并得到:
我正试图将位图保存到文件中,但android studio抛出了一个异常java。io。FileNotFoundException:/storage/simulated/0/Pictures/savedBitmap。png(权限被拒绝)我做错了什么?
求你了,我需要你的帮助。每当我试图运行下面的程序时,它会说不兼容的类型,字符串不能转换为整数。
我安装了Jenkins作为docker容器。在Jenkins全局工具配置中,添加MAVEN_HOME(/usr/share/MAVEN)并选中“自动安装”。当我按下Build Now时,会出现以下错误: 我没有/var/jenkins_home/workspace/MavenProject目录。并且此目录位于具有完全权限的根帐户下。你知道我该怎么修吗?
我想用python绘制一个非常简单的直方图。这是我的代码: 这就是结果 我怎样才能把这些条放在整数的地方呢?为什么我的图表也显示浮点数?
我想使用“扩展”操作符克隆对象。但是,这些方法不会复制,如图所示 我知道你可以做Object赋值(),但我正在寻找一种使用ES6语法的方法 ES6中使用扩展语法的深度复制解决方案涉及深度克隆:我只对复制方法和属性感兴趣 如何克隆javascript ES6类实例的解决方案使用Object.Assign()