Articles of android multidex

有没有办法在Android Studio中使用MultiDexfunction时限制主dex文件中的方法数量

当我在Android Studio中启用MultiDexfunction时 ,就像文档所说,它会自动转换为两个或更多dex文件。 我无法配置它。 似乎在主dex文件中,方法的数量非常接近限制(65536)。 问题是如何配置它,使主dex文件中的方法数量减少到一定数量,比如60k。 我必须将apk上传到亚马逊appstore,亚马逊的人会在主要的dex文件中添加一些方法并使其超过65536的限制。

java.util.zip.ZipException:重复条目:android / support / v4 / accessibilityservice / AccessibilityServiceInfoCompatJellyBeanMr2.class

我正在将我的项目集成到android studio中的另一个应用程序,但它显示以下错误,我正在谷歌搜索该问题,但没有用。 Error:Execution failed for task ‘:app:packageAllDebugClassesForMultiDex’. > java.util.zip.ZipException: duplicate entry: android/support/v4/accessibilityservice/AccessibilityServiceInfoCompatJellyBeanMr2.class 下面是我的应用程序依赖项 configurations { all*.exclude group: ‘com.android.support’, module: ‘support-annotations’ } dependencies { compile fileTree(dir: ‘libs’, include: [‘*.jar’]) compile project(‘:waleteros’) compile ‘com.android.support:recyclerview-v7:+’ compile ‘com.squareup.picasso:picasso:2.4.0’ compile ‘com.jakewharton:butterknife:5.1.2’ compile files(‘src/libs/android_sync_service_library.jar’) compile “com.google.android.gms:play-services:3.1.+” compile(‘com.crashlytics.sdk.android:crashlytics:2.2.2@aar’) { transitive = true; } 这是我的库依赖项 configurations { all*.exclude group: ‘com.android.support’, module: ‘support-v4’ } […]

java.lang.LinkageError:MainActivity

我在我的应用程序中使用productFlavours 。 我也在使用multi dex。 defaultConfig { multiDexEnabled true minSdkVersion 17 targetSdkVersion 22 … } productFlavors { prodFlavor1{…} prodFlavor2{…} } dependencies { compile ‘com.android.support:multidex:1.0.1’ … } 在Application类中: @Override public void onCreate() { MultiDex.install(getApplicationContext()); super.onCreate(); } 我为5以下版本的Android版本添加了以上代码。 然后,以下结构,具有2个稍微不同的MainActivity版本(MainActivity扩展AppCompatActivity)在应用程序的某个时刻开始,按下按钮。 app/src/prodFlavor1/…/MainActivity app/src/prodFlavor2/…/MainActivity 在prodFlavor1 , MainActivity在prodFlavor1之后立即启动。 在prodFlavor2 , MainActivity 。 这个工作很长一段时间,甚至在我用multidex添加那个部分后,但突然弯腰工作,没有任何解释。 即使我删除了引用multidex的代码,我也会得到同样的东西。 当我切换到prodVersion2一切正常。 但当我切换到prodVersion1我得到: startActivity(new Intent(TutorialActivity.this,MainActivity.class)); Android 6的Nexus 5: Process: […]

Android Espresso multidex失败

我们在我们的应用程序中使用multidex很长一段时间但最近使用最新更新它在android API <19上失败,例如带有api 16的模拟器它是标准的java.lang.NoClassDefFoundError。 如果我为缺少的类定义multidexKeepProguard,例如java.lang.NoClassDefFoundError。 rx.plugins.RxJavaHooksexception -keep class rx.plugins.**{*;} 然后它会在不同的地方失败,原因与NoClassDefFound相同 这是跑步者,应用程序和清单设置: https://gist.github.com/originx/1890599b57b0ee3e14a85a4732301cd9 logcat的: https://gist.github.com/originx/887f80d405334f1903b3024eb5cd1024 建立环境设置: Android Studio 2.2.2 Build#AI-145.3360264,建于2016年10月18日JRE:1.8.0_112-release-b05 x86_64 JVM:JetJrains sro的OpenJDK 64位服务器VM 编译选项 compile ‘com.android.support:multidex:1.0.1’ 构建工具信息: classpath ‘com.android.tools.build:gradle:2.2.2′ compileSdkVersion 25 buildToolsVersion ’25’ defaultConfig { applicationId “app.packagename.com” minSdkVersion 16 targetSdkVersion 25 testInstrumentationRunner “de.payback.app.CustomAndroidJUnitRunner” multiDexEnabled true } dexOptions { jumboMode true preDexLibraries false javaMaxHeapSize “4g” maxProcessCount […]

Java.lang.ClassCastException:Android.support.v7.widget.ContentFrameLayout无法强制转换为Android.support.v7.widget.ContentFrameLayout

有时我安装我的Android应用程序,但我得到以下exception,但这并不总是可重现的。 java.lang.ClassCastException:android.support.v7.widget.ContentFrameLayout无法强制转换为android.support.v7.widget.ContentFrameLayout 我在我的Android应用程序上使用multidex并且我读到了关于三星设备有multithreading实现错误的问题,但这发生在运行5.1的LG G3和运行6.0的HTC A9上。 任何人都有任何想法为什么这是随机发生的,我该怎么做才能解决它? 编辑:我不能分享很多代码,因为这是我工作的公司。 buildscript { repositories { mavenCentral() } dependencies { classpath ‘com.android.tools.build:gradle:1.5.0’ classpath ‘com.neenbedankt.gradle.plugins:android-apt:1.8′ } } apply plugin:’com.android.application’apply plugin:’com.neenbedankt.android-apt’ buildscript {repositories {mavenCentral()} dependencies { classpath ‘com.android.tools.build:gradle:1.5.0’ classpath ‘com.neenbedankt.gradle.plugins:android-apt:1.8′ } } apply plugin:’com.android.application’apply plugin:’com.neenbedankt.android-apt’ 存储库{mavenCentral()maven {url’https://repository-achartengine.forge.cloudbees.com/snapshot’} maven {url’libs-localrepository’}} android {buildToolsVersion“23.0.2”compileSdkVersion 23 dexOptions { javaMaxHeapSize “4g” } defaultConfig { minSdkVersion 18 targetSdkVersion […]

任务执行失败’:app:shrinkReleaseMultiDexComponents’

我在Android Studio中生成签名的apk时遇到以下错误。 :app:shrinkReleaseMultiDexComponents FAILED Error:Execution failed for task ‘:app:shrinkReleaseMultiDexComponents’. > java.io.IOException: The output jar [E:\SVN_studio\100’s\trunk\app\build\intermediates\multi-dex\release\componentClasses.jar] must be specified after an input jar, or it will be empty. Information:BUILD FAILED Information:1 error Information:Total time: 35.975 secs Information:159 warnings 这是我的build.gradle文件 apply plugin: ‘com.android.application’ apply plugin: ‘com.google.gms.google-services’ android { compileSdkVersion 21 buildToolsVersion “22.0.1” defaultConfig { applicationId “” minSdkVersion […]

找不到Gradle DSL方法:’multiDexEnabled()’

我按照https://developer.android.com/tools/building/multidex.html上的multidex指南进行操作 但是我发现这个错误没有findGradle DSL方法:’multiDexEnabled()’ 。 我更新了Android内置工具,Android支持存储库和库。 这是我的gradle.build文件。 我在这里做错了吗? Could not find method multiDexEnabled() for arguments [true] on ProductFlavorDsl_Decorated{name=main, minSdkVersion=ApiVersionImpl{mApiLevel=10, mCodename=’null’}, targetSdkVersion=ApiVersionImpl{mApiLevel=17, mCodename=’null’}, renderscriptTargetApi=-1, renderscriptSupportMode=null, renderscriptNdkMode=null, versionCode=-1, versionName=null, applicationId=test.com.app, testApplicationId=null, testInstrumentationRunner=null, testHandleProfiling=null, testFunctionalTest=null, signingConfig=null, resConfig=null}. 的build.gradle apply plugin: ‘com.android.application’ android { compileSdkVersion 19 buildToolsVersion “21.1.1” defaultConfig { applicationId “test.com.app” minSdkVersion 10 targetSdkVersion 17 // Enabling multidex support. […]

关于API 19的Android Gradle Multidex Build问题

我有一个项目,我已启用multidex以避免65k limit以及productFlavors (dev API 21和prod API 19)进行自定义。 在API 21上构建我的项目,即dev风味是成功的但是在API 19即prod风格上,它在app任务中不断给我exceptionshrink{component}MultiDexComponents 完整的错误日志: :app:shrinkProdDebugMultiDexComponents FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ‘:app:shrinkProdDebugMultiDexComponents’. > java.io.IOException: Can’t read [{Project Path}/app/build/intermediates/multi-dex/prod/debug/allclasses.jar] (Can’t process class [com/olivephone/office/a/b/e/p.class] (Unknown verification type [17] in stack map frame)) 的build.gradle apply plugin: ‘com.android.application’ android { compileSdkVersion 23 buildToolsVersion […]

重复Zip条目MultiDex.class

我有一个Android应用程序刚刚超过方法限制,所以我尝试启用multidex。 一旦我这样做,我得到以下错误: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ‘:app:transformClassesWithMultidexlistForProdDebug’. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70) at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63) at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88) at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54) at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99) at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625) at […]

VM具有multidex支持,MultiDex支持库被禁用

我收到以下错误。 致命exception:主要 版本2.1.0的VM具有多索引支持 安装 VM具有multidex支持,MultiDex支持库被禁用。 安装 VM具有multidex支持,MultiDex支持库被禁用。 关闭VM 这是我的build.gradle,我在android部分启用了multidex, apply plugin: ‘com.android.application’ android { compileSdkVersion 23 buildToolsVersion ‘23.0.0’ defaultConfig { applicationId “com.mycompany.newlogin” minSdkVersion 15 targetSdkVersion 22 versionCode 1 versionName “1.0” multiDexEnabled true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } productFlavors { } useLibrary ‘org.apache.http.legacy’ } dependencies { compile fileTree(dir: ‘libs’, […]