Articles of android multidex

Android – 使用Dex进行调试的类转换

我的项目工作正常,直到我添加了Facebook依赖项。 我开始收到此错误。 我读了很多问题,问题似乎与MultiDex有关。 但这些解决方案都不适合我 Error:Execution failed for task ‘:app:transformClassesWithDexForDebug’. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command ‘/usr/lib/jvm/java-7-openjdk-amd64/bin/java” finished with non-zero exit value 1 即使在我删除了我添加的内容之后,它仍然显示并且gradle似乎在构建时比平常花费了大量时间 这是我的build.gradle apply plugin: ‘com.android.application’ android { compileSdkVersion 23 buildToolsVersion “23.0.3” defaultConfig { applicationId “net.ciblo.spectrodraft” minSdkVersion 15 targetSdkVersion 23 versionCode 1 multiDexEnabled true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ […]

Android在首次启动时需要更多时间启动应用程序

在我的项目中,我使用了需要multidex支持的库。 根据我的研究,我发现它会导致应用启动时出现延迟。 我在gradle中启用了multidexfunction。 defaultConfig {multiDexEnabled true} 我曾经为kitkat设备获得NoClassDefFound Exception,所以我添加了以下内容: 我在清单中添加了应用程序名称为android:name =“android.support.multidex.MultiDexApplication” 并使用MultiDexApplication扩展了我的应用程序类。 我知道上面的任何一个都足够但我刚刚写了两个。 我尝试了不同的方法来优化启动的持续时间,如下所示: 1.added productFlavors {dev {minSdkVersion 21} prod {minSdkVersion 14}} dexOptions {preDexLibraries false javaMaxHeapSize“4g”} 我只导入了必需的google play服务库,而不是导入完整的库。 你能不能建议我一种即兴创作的方法,因为它实际上需要超过10秒,有时甚至超过某些设备? 或者是否有任何其他原因导致延迟与multidex相比? 提前致谢。 我添加了build.gradle文件内容: apply plugin: ‘com.android.application’ apply plugin: ‘com.google.gms.google-services’ android { compileSdkVersion 23 buildToolsVersion “23.0.3” useLibrary ‘org.apache.http.legacy’ defaultConfig { applicationId “com.example.app” minSdkVersion 17 targetSdkVersion 23 versionCode 3 […]

为什么使用multiDexEnabled(true)允许应用程序构建但不断崩溃?

我正在处理的应用程序(基本代码不是由我编写的,包含许多无法删除的大型库)。 在最近的一次运行中,它开始响应消息: 这仅在应用程序在使用运行箭头时尝试构建时发生,它在调用“rebuild”或“clean”时成功构建。 包含在线的解决方案是使用multiDexEnabled true( 此处为multiDex文档 。) 使用这个我能够使用“运行”箭头和“重建”获得建筑物。 但是,构建并在手机上运行的应用程序崩溃时出现以下错误消息: 12-11 16:17:16.963 28868-28868/? D/dalvikvm: Late-enabling CheckJNI 12-11 16:17:17.023 28868-28868/com.myname.myappcoop W/dalvikvm: VFY: unable to resolve static field 10471 (common_google_play_services_updating_text) in Lcom/google/android/gms/R$string; 12-11 16:17:17.023 28868-28868/com.myname.myappcoop D/dalvikvm: VFY: replacing opcode 0x60 at 0x0021 12-11 16:17:17.023 28868-28868/com.myname.myappcoop I/dalvikvm: DexOpt: unable to optimize static field ref 0x28e8 at 0x2e in Lcom/google/android/gms/common/GoogleApiAvailability;.zza […]

MultiDexApplication无法识别

尝试在我的应用程序中使用MultiDexApplication,但是当我尝试使用它扩展应用程序活动时,无法识别该类。 这是我的build.gradle文件: apply plugin: ‘com.android.application’ android { compileSdkVersion 21 buildToolsVersion ‘21.0.1’ defaultConfig { applicationId ‘com.myapp’ minSdkVersion 10 targetSdkVersion 21 versionCode 115 versionName ‘4.8’ } buildTypes { debug { debuggable true runProguard false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } release { debuggable false runProguard true zipAlign true proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } packagingOptions { exclude ‘META-INF/LICENSE.txt’ exclude ‘META-INF/NOTICE.txt’ […]

没有使用Multidex的Android Espresso会显示“未find测试”

我的Espresso测试一直在运行,直到我不得不支持multidex。 我的build.gradle,我有 minSdkVersion 14 targetSdkVersion 23 multiDexEnabled = true testInstrumentationRunner “com.android.test.runner.MultiDexTestRunner” androidTestCompile ‘com.android.support.test.espresso:espresso-core:2.2.1’ androidTestCompile ‘com.android.support.test.espresso:espresso-contrib:2.2.1’ androidTestCompile ‘com.android.support.test:runner:0.4.1’ androidTestCompile ‘com.android.support.test:rules:0.4.1’ dexOptions { jumboMode true javaMaxHeapSize “4g” incremental true } Test1AuthenticationEspressoTest @RunWith(AndroidJUnit4.class) @SmallTest public class Test1AuthenticationEspressoTest { @Rule public ActivityTestRule mActivityRule = new ActivityTestRule(WelcomeActivity.class); } 这是我得到的错误 junit.framework.AssertionFailedError:在com.livestrong.tracker.test.Test1AuthenticationEspressoTest中找不到测试 任何帮助将不胜感激。 有人使用浓缩咖啡吗?

升级到Android Studio 2.3后,获取“package android.support.multidex”不存在

我昨天从Android Studio 2.2.3更新到Android Studio 2.3,我遇到了以下两个问题: 更新后,默认情况下安装了Gradle 3.2,但同步我的项目不起作用,我不断收到错误消息“需要Gradle 3.3”。 使用默认的Gradle包装器不起作用。 解决此问题的唯一方法是手动下载Gradle 3.3并指向构建设置中的目录。 在运行我的项目时,我不断收到涉及扩展MultiDexApplication BaseApplication类的一系列错误。 错误是这样的: Error:(19, 62) error: package android.support.multidex does not exist 我无法解决此错误。 我有buildToolsVersion ‘25.0.2’ ,我的项目在升级到Android Studio 2.3之前已经编译并正常运行。 任何人都可以帮我解决这个问题吗?

加速multidex应用程序中的gradle构建

我的应用程序有一堆必不可少的库,这就是为什么我被迫使用multidex支持库并且它运行良好。 但问题出在哪里是在gradle buid速度。 平均需要2分钟才能构建,当我开发和测试时,这非常烦人。 有没有办法加快我的调试版本?

gradle – Android Studio构建太慢的multidex应用程序

当我向我的项目添加multidex:true,并创建一个从MultiDexApplication扩展的Application类时,我的项目构建时间从20秒传递到大约90秒。如何更快地做一些?

执行任务失败: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 "<packageName>" minSdkVersion […]

如何通过导入正确的库来避免DEX 64K LIMIT

在编译我使用的所有库时,我遇到了这个问题, 在Dalvik中溢出了64k方法限制 。 当我导入支持库的时候,我开始遇到这个问题,因为有些已经包含在其他支持库中,结果溢出了极限。 有没有办法来validation一个库是否在当前项目中未使用或已经通过其他库依赖关系导入? 目前,我排除了我所知道的那些,但是看起来很奇怪,不得不亲自去做。 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:multidex:1.0.1' compile "com.android.support:percent:${supportLibVersion}" compile("com.android.support:design:${supportLibVersion}") { exclude module: 'support-v4' } compile("com.android.support:cardview-v7:${supportLibVersion}") { exclude module: 'support-v4' } compile('com.github.nkzawa:socket.io-client:0.4.1') { exclude group: 'org.json', module: 'json' } compile('com.astuetz:pagerslidingtabstrip:1.0.1') { exclude module: 'support-v4' } //… } 目前的解决scheme: 使用Gradle插件 – 我们写了一个非常容易使用的Gradle插件,后面列出了随包装数量一起打包的方法数量。 你可以在这里find更多关于它的信息。 www.methodscount.com – 想知道一个特定的图书馆将添加到您的应用程序有多less种方法? 只需在这个网站上input'compile'语句,它会告诉你它的方法数量,依赖关系,JAR大小和DEX大小。 Android […]