Articles of android multidex

我无法安装新发布的应用:错误代码:-504

我刚刚将我的应用程序发布到Google Play商店,并且已成功发布已签名的apk。 但是,(我在三种不同的手机和平板电脑上试过这个),该应用程序拒绝从商店下载时安装。 单击“安装”按钮后,应用程序将下载,状态将更改为“正在安装…”,然后会出现以下对话框: 可以做些什么? 有关我的应用程序的事实可以帮助排除故障: 该应用针对的是API22,其minSDK为17。 我没有使用proguard。 该应用程序通过multidex支持库使​​用multidex。 应用程序/的build.gradle: buildscript { repositories { maven { url ‘https://maven.fabric.io/public’ } } dependencies { classpath ‘io.fabric.tools:gradle:1.+’ } } apply plugin: ‘com.android.application’ apply plugin: ‘me.tatarka.retrolambda’ apply plugin: ‘io.fabric’ repositories { maven { url ‘https://maven.fabric.io/public’ } jcenter() } android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } compileSdkVersion 23 […]

在Android的ant中启用`–multi-dex`选项

为gradle构建系统启用multi-dex选项很容易,但是我没有find如何为ant构建启用此选项的示例。 怎么归档这个?

Android studio java.lang.NoClassDefFoundError:android.support.v4.app.NavUtilsJB

这是我用android studio 1.0.2实现的错误日志 02-03 13:05:23.831 8385-8385/com.******.*******E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.NoClassDefFoundError: android.support.v4.app.NavUtilsJB at android.support.v4.app.NavUtils$NavUtilsImplJB.getParentActivityName(NavUtils .java:125) at android.support.v4.app.NavUtils.getParentActivityName(NavUtils.java:302) at android.support.v4.app.NavUtils.getParentActivityName(NavUtils.java:281) at android.support.v7.app.ActionBarActivityDelegateBase.onCreate(ActionBarActivityDelegateBase.java:142) at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:123) at com..******.*******.****.ActivityWelcome.onCreate(ActivityWelcome.java:33) at android.app.Activity.performCreate(Activity.java:5104) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) at android.app.ActivityThread.access$600(ActivityThread.java:141) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5041) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) at dalvik.system.NativeStart.main(Native Method) 组态 […]

我可以在Android调试版本中启用multidex吗?

亲爱的,我在很多博客文章中都看到,multidex apps启动比普通应用慢。 我的应用程序使用了大量超过64k方法的库,因此我使用了multidex。 但是当我在发布版本中使用proguard时,最终的apk变得不到64k方法 所以我的问题是:我可以在Android调试版本中启用multidex,这样我就没有运行时错误吗? 并在发布版本中禁用multi dex,因为我不需要它? 如果有,怎么样? 如果不是,Android是否足够智能以加速启动,因为它应该认识到应用程序不超过64k,即使它是多dex应用程序?

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之前已经编译并正常运行。 任何人都可以帮我解决这个问题吗?