Articles of multidex

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) 组态 […]

MultiDexTestRunner的哪个包? android.support.multidex或com.android.test.runner

页面http://developer.android.com/tools/building/multidex.html#testing建议 dependencies { compile ‘com.android.support:multidex:1.0.1’ androidTestCompile ‘com.android.support:multidex-instrumentation:1.0.1’ } android { defaultConfig { multiDexEnabled true testInstrumentationRunner “android.support.multidex.MultiDexTestRunner” } } 但是在运行测试时会产生ClassNotFoundException。 API文档和dexdump显示有com.android.test.runner.MultiDexTestRunner。 所以如果我不相信文档而是指定 dependencies { compile ‘com.android.support:multidex:1.0.1’ androidTestCompile ‘com.android.support:multidex-instrumentation:1.0.1’ } android { defaultConfig { multiDexEnabled true testInstrumentationRunner “com.android.test.runner.MultiDexTestRunner” } } 然后我明白了 com/company/myapp/MyApp; had used a different Landroid/support/multidex/MultiDexApplication; during pre-verification … IllegalAccessExceptionIllegalAccessError: Class ref in pre-verified class resolved […]

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

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

Multidex安装失败

我正在使用CircledImageView库。 它适用于棒棒糖+ Android版本。 但在kitkat它崩溃了。 所以在谷歌搜索后。 我发现我必须在我的应用程序中实现multidex。 所以这是我的应用程序类。 public class FireApp extends Application { @Override public void onCreate() { super.onCreate(); Firebase.setAndroidContext(this); Fresco.initialize (this); } @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } } 在defaultconfig下的build.gradle中,MultiDexEnabled为true multiDexEnabled true 但是当我运行应用程序时,我收到以下错误。 java.lang.NoSuchFieldException: Field dexElementsSuppressedExceptions not found in class dalvik.system.PathClassLoader at android.support.multidex.MultiDex.findField(MultiDex.java:288) at android.support.multidex.MultiDex.access$300(MultiDex.java:57) at android.support.multidex.MultiDex$V19.install(MultiDex.java:390) at android.support.multidex.MultiDex$V19.access$000(MultiDex.java:369) at android.support.multidex.MultiDex.installSecondaryDexes(MultiDex.java:242) […]

使用Multidex对应用程序性能,稳定性,兼容性的影响……?

我的应用程序的下一个版本大约有70K方法。 了解使用Multidex的确切含义(通常意味着使用Multidex支持库来支持API <21)对我做出这个决定非常重要: 我应该付出很多努力(例如通过微调我的Proguard配置以更积极地缩小,倾倒一些第三方库等)以符合64K方法限制,或者我应该只启用Multidex? 文档表明Multidex支持库可能有一些严重的副作用(请参阅Limitations of the multidex support library )。 我真的应该期待什么? 某些设备上的安装失败? 应用程序启动缓慢(第一次启动或始终)? 某些设备上出现新的崩溃或ANR? 整体性能下降? 我们将非常感谢您自己迁移到Multidex的反馈。

DexIndexOverflowException:无法将新索引65772合并为非巨型指令!:Jumbo Mode? 和/或Multi-Dex? 幕后的是什么?

我试图在gradle中为我的项目设置jumboMode,它似乎能够解决以下DexIndexOverflowException: com.android.dex.DexException:无法将新索引65536合并为非巨型指令! DexIndexOverflowException:无法将新索引65772合并为非巨型指令! 1)什么是jumboMode选项实际上在幕后做了什么? android { … dexOptions { jumboMode true } } 2)我也注意到启用multi-dex也可以解决同样的问题,这两种方法之间的正确选择是什么? android { … defaultConfig { … multiDexEnabled true } }

为什么使用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’ […]

应用程序在启动时由android.content.Context.getString中的NPE导致崩溃

我们有一个非常奇怪的崩溃,它指向系统类。 它出现在应用程序启动时。 致命exception:java.lang.RuntimeException:无法启动活动ComponentInfo {com.myapp.android/com.myapp.android.main.BaseMainActivity}:java.lang.RuntimeException:无法创建应用程序com.myapp.android.main。 MyApp:android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377)的android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2429)的android.app.ActivityThread.access $ 800(ActivityThread.java)的java.lang.NullPointerException :151)在Android.app.Loper.loop(Looper.java:193)的android.app.Handler.dispatchMessage(Handler.java:110)上的android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1342)在android.app.ActivityThread.main(ActivityThread.java:5333)的java.lang.reflect.Method.invokeNative(Method.java),位于com的java.lang.reflect.Method.invoke(Method.java:515)。 android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:828)位于dalvik.system.NativeStart.mai的com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644) n(NativeStart.java)由java.lang.RuntimeException引起:无法在android.app.LoadedApk.makeApplication(LoadedApk.java:529)上创建应用程序com.myapp.android.main.MyApp:java.lang.NullPointerException Android.app.ActivityThread上的android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2429)android.app.ActivityThread.access $ 800(ActivityThread.java:151)上的.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292) $ H.handleMessage(ActivityThread.java:1342)位于android.app.AtoT.Thread.main上android.os.Handler.dispatchMessage(Handler.java:110)的android.os.Looper.loop(Looper.java:193) ActivityThread.java:5333)at java.lang.reflect.Method.invokeNative(Method.java)at java.lang.reflect.Method.invoke(Method.java:515)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller .run(ZygoteInit.java:828)位于dalvik.system.NativeStart.main(NativeStart.java)的com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644)由java.lang.NullPointerEx引起 知识在android.content.Context.getString(Context.java:343)的com.myapp.android.api.singletons.AppTrackingInstance.initAdjust(AppTrackingInstance.java:114)com.myapp.android.api.singletons.AppTrackingInstance。 (AppTrackingInstance.java:92)com.myapp.android.injection.modules.ApplicationScopeModule.provideAppTrackingInstance(ApplicationScopeModule.java:326)at com.myapp.android.injection.modules.ApplicationScopeModule $$ ModuleAdapter $ ProvideAppTrackingInstanceProvidesAdapter.get(ApplicationScopeModule $ $ ModuleAdapter.java:1618)at com.myapp.android.injection.modules.ApplicationScopeModule $$ ModuleAdapter $ ProvideAppTrackingInstanceProvidesAdapter.get(ApplicationScopeModule $$ ModuleAdapter.java:1552)at dagger.internal.Linker $ SingletonBinding.get(Linker.java) :364)com.myapp.android.main.MyApp $$ InjectAdapter.injectMembers(MyApp $$ InjectAdapter.java:70)at com.myapp.android.main.MyApp $$ InjectAdapter.injectMembers(MyApp $$ […]

SDK 21下面的NoClassDefFoundError

我刚刚在我的App中遇到了一个尴尬的错误。 在我的Nexus 5/7上,运行android 5.0.1 / 5.0.2,一切正常。 但是,如果我尝试在具有早期版本(测试4.4.4和4.3)的设备上运行完全相同的代码,我会收到以下错误: 03-13 13:49:41.140 21714-21714/? E/dalvikvm﹕ Could not find class ‘com.default.package.application.model.Appcomponent’, referenced from method com.default.package.application.controller.DatabaseHandler.getScreenComponents 03-13 13:49:41.140 21714-21714/? E/dalvikvm﹕ Could not find class ‘android.support.v7.app.ActionBarActivityDelegate$1’, referenced from method android.support.v7.app.ActionBarActivityDelegate. 03-13 13:49:41.140 21714-21714/? E/dalvikvm﹕ Could not find class ‘android.support.v7.app.ActionBarActivityDelegateHC’, referenced from method android.support.v7.app.ActionBarActivityDelegate.createDelegate 03-13 13:49:41.140 21714-21714/? E/dalvikvm﹕ Could not find class ‘android.support.v7.app.ActionBarActivityDelegateBase’, […]