标签: android-multidex

java.lang.NoClassDefFoundError:com.google.android.gms.common.internal.zzd

使用Maps api v2,它与4.4,5.0,5.1,5.1.1,6完美配合,但是当我尝试4.2.2时应用程序崩溃.我一直在做很多研究,但似乎没有任何效果.这是完整的日志.

FATAL EXCEPTION: main
     java.lang.NoClassDefFoundError: com.google.android.gms.common.
         at com.google.android.gms.measurement.internal.zzk$zza.get(
         at com.google.android.gms.measurement.internal.zzc.zzkG(
         at com.google.android.gms.measurement.internal.zzr.<init>(
         at com.google.android.gms.measurement.internal.zzx.zzb(
         at com.google.android.gms.measurement.internal.zzt.<init>(
         at com.google.android.gms.measurement.internal.zzx.zzBQ(
         at com.google.android.gms.measurement.internal.zzt.zzaU(
         at com.google.android.gms.measurement.ource)
         at android.content.ContentProvider.attachInfo(ContentProvider
         at android.app.ActivityThread.installProvider(ActivityThread.
         at android.app.ActivityThread.installContentProviders(
         at android.app.ActivityThread.handleBindApplication(
         at android.app.ActivityThread.access$1300(ActivityThread.
         at android.app.ActivityThread$H.handleMessage(ActivityThread.
         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
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.
         at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

这是我的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: 'io.fabric'

repositories { …
Run Code Online (Sandbox Code Playgroud)

android noclassdeffounderror google-maps-api-2 android-studio android-multidex

5
推荐指数
2
解决办法
2万
查看次数

无法立即运行:Dalvik运行时的传统multi-dex

当我运行我的应用程序时,它说

无法立即运行:Dalvik运行时的传统multi-dex

这是否意味着我在使用multi-dex时无法使用Instant Run?

我正在使用Android Studio beta4.

android-studio android-multidex instant-run

5
推荐指数
1
解决办法
2529
查看次数

如何找出Android Studio/Gradle中的库添加了多少方法

当我们在Android Studio项目的gradle文件中添加新库作为依赖项时,找出我们添加到方法计数的方法的最简单方法是什么,例如:

compile 'com.github.jkwiecien:EasyImage:1.2.1'
Run Code Online (Sandbox Code Playgroud)

android gradle android-studio android-multidex

5
推荐指数
2
解决办法
721
查看次数

Android Multidex支持库已禁用

我在我的应用程序中遇到了一些multidex支持问题,实际上应用程序正常安装,但是通过这个过程,一些活动崩溃了,应用程序重新启动了主要活动.在logcat中我发现了这个:

I/MultiDex: install
I/MultiDex: VM has multidex support, MultiDex support library is disabled.
Run Code Online (Sandbox Code Playgroud)

但我遵循建议来启用Multidex支持:

Gradle:

compileSdkVersion 25
buildToolsVersion '25.0.2'

defaultConfig {
    applicationId "com..company.package"
    minSdkVersion 15
    targetSdkVersion 25
    multiDexEnabled true
    versionCode 21
    versionName "2.1.3"

}

dexOptions {
    javaMaxHeapSize "4g"
}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
//compile project(':rangebar')
compile('com.github.afollestad.material-dialogs:core:0.8.5.3@aar') { transitive = true }
compile('com.weiwangcn.betterspinner:library-material:1.1.0') {
    exclude group: 'com.android.support', module: 'appcompat-v7'
}
compile files('libs/itextpdf-5.5.9.jar')
compile 'com.android.support:multidex:1.0.1'
...
Run Code Online (Sandbox Code Playgroud)

应用程序类扩展了Multidex:

public class MyApplication extends MultiDexApplication {
@Override
protected void attachBaseContext(Context base) { …
Run Code Online (Sandbox Code Playgroud)

android android-multidex

5
推荐指数
1
解决办法
8548
查看次数

Android-multiDexKeepProguard的用途是什么?它与proguardFiles相比有何不同?

我创建了一个multidex应用。但是关于proguard,我在build.gradle中有以下内容:

    android {
    defaultConfig {
        ...
        multiDexEnabled true
    }
    productFlavors {
        dev {
            // Enable pre-dexing to produce an APK that can be tested on
            // Android 5.0+ without the time-consuming DEX build processes.
            minSdkVersion 21
        }
        prod {
            // The actual minSdkVersion for the production version.
            minSdkVersion 14
        }
    }
    buildTypes {
        release {
            minifyEnabled true
        ***    proguardFiles getDefaultProguardFile('proguard-android.txt'),
                                                 'proguard-rules.pro'
        }
    }
}
dependencies {
    compile 'com.android.support:multidex:1.0.1'
}
Run Code Online (Sandbox Code Playgroud)

我的问题是关于progardFiles与使用multiDexKeepProguard的比较。该文档指出:

文件multiDexKeepProguard

带有附加ProGuard规则的文本文件,用于确定将哪些类编译到主dex文件中。

如果设置了该文件中的规则,则将其与构建系统使用的默认规则结合使用。

因此,如果我不使用multiDexKeepProguard,那么我的类仍会被编译,但可能不会出现在主dex文件中,这是正确的吗?我不清楚这与proguardFiles有何不同。

Android文档也引用了这个

android proguard android-gradle-plugin android-multidex

5
推荐指数
1
解决办法
1798
查看次数

Android Fabric crashlytics导致应用程序崩溃

由于Fabric Crashlytics,我遇到了奇怪的崩溃。我正在使用Fabric的crashlytics。但是,当我在S5 5.0 API 21上运行应用程序时,它将使整个应用程序崩溃。

请参阅以下报告:

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/crashlytics/android/core/CrashlyticsCore;
                                                                    at com.crashlytics.android.Crashlytics.<init>(Crashlytics.java:29)
                                                                    at com.projectname.application.AppData.onCreate(AppData.java:162)
                                                                    at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1020)
                                                                    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5010)
                                                                    at android.app.ActivityThread.access$1600(ActivityThread.java:172)
                                                                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1482)
                                                                    at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                    at android.os.Looper.loop(Looper.java:145)
                                                                    at android.app.ActivityThread.main(ActivityThread.java:5835)
                                                                    at java.lang.reflect.Method.invoke(Native Method)
                                                                    at java.lang.reflect.Method.invoke(Method.java:372)
                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
                                                                 Caused by: java.lang.ClassNotFoundException: Didn't find class "com.crashlytics.android.core.CrashlyticsCore" on path: DexPathList[[zip file "/data/app/com.projectname-2/base.apk", zip file "/data/app/com.projectname-2/split_lib_dependencies_apk.apk", zip file "/data/app/com.projectname-2/split_lib_slice_0_apk.apk", zip file "/data/app/com.projectname-2/split_lib_slice_1_apk.apk", zip file "/data/app/com.projectname-2/split_lib_slice_2_apk.apk", zip file "/data/app/com.projectname-2/split_lib_slice_3_apk.apk", zip file "/data/app/com.projectname-2/split_lib_slice_4_apk.apk", zip file "/data/app/com.projectname-2/split_lib_slice_5_apk.apk", zip file "/data/app/com.projectname-2/split_lib_slice_6_apk.apk", zip file "/data/app/com.projectname-2/split_lib_slice_7_apk.apk", zip file "/data/app/com.projectname-2/split_lib_slice_8_apk.apk", …
Run Code Online (Sandbox Code Playgroud)

android crashlytics android-multidex crashlytics-android google-fabric

5
推荐指数
1
解决办法
2003
查看次数

构建失败 - "无法合并Dex"

我正在尝试构建项目,我收到以下错误:

在此输入图像描述

运行后--stackrace这是我得到的错误:

在此输入图像描述

这是log我得到的:

FAILURE: Build failed with an exception.

    * What went wrong:
    Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
    > com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

    * Try:
    Run with --info or --debug option to get more log output.

    * Exception is:
    org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
        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) …
Run Code Online (Sandbox Code Playgroud)

android android-multidex

5
推荐指数
1
解决办法
9198
查看次数

原因:com.android.dex.DexException:多个dex文件在Studio 3.0中定义Lorg/apache/commons/io/IOCase

我正在开发一个项目.这适用于Android studio 2.3.3,但是当我更新我的Android Studio 3.0并打开我的项目然后它无法组装并且它发送给我下面的错误日志时会发生什么.

错误日志

Error:Error converting bytecode to dex:
Cause: com.android.dex.DexException: Multiple dex files define Lorg/apache/commons/io/IOCase;
Error:com.android.dex.DexException: Multiple dex files define Lorg/apache/commons/io/IOCase;
Error:    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661)
Error:  at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616)
Error:  at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598)
Error:  at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
Error:  at com.android.dx.merge.DexMerger.merge(DexMerger.java:198)
Error:  at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61)
Error:  at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:36)
Error:  at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
Error:  at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
Error:  at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
Error:  at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
Error:  at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Error:Execution failed for task ':app:transformDexArchiveWithDexMergerForDebug'.
> com.android.build.api.transform.TransformException: com.android.dex.DexException: Multiple dex files define Lorg/apache/commons/io/IOCase;
Run Code Online (Sandbox Code Playgroud)

请不要重复,因为我已经尝试过以下所有的事情

  • 清洁项目
  • 重建项目
  • 重新打开项目并清理并重建后,删除项目中的/.gradle …

apache android gradle android-multidex android-studio-3.0

5
推荐指数
1
解决办法
7700
查看次数

ClassNotFoundException- .BaseDexClassLoader.findClass

我在生产版本中面临ClassNotFoundException

请在下面找到异常日志。

java.lang.RuntimeException:
at android.app.LoadedApk.makeApplication (LoadedApk.java:578)
at android.app.ActivityThread.handleBindApplication (ActivityThread.java:4680)
at android.app.ActivityThread.access$1600 (ActivityThread.java:150)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1405)
at android.os.Handler.dispatchMessage (Handler.java:102)
at android.os.Looper.loop (Looper.java:148)
at android.app.ActivityThread.main (ActivityThread.java:5417)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616)

Caused by: java.lang.ClassNotFoundException:
at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass (ClassLoader.java:511)
at java.lang.ClassLoader.loadClass (ClassLoader.java:469)
at android.app.Instrumentation.newApplication (Instrumentation.java:982)
at android.app.LoadedApk.makeApplication (LoadedApk.java:573)
Run Code Online (Sandbox Code Playgroud)

我已经在项目中正确设置了 progaurd 和 Multidex,这个问题出现在从 4.2 到 6.0 的多个 android 版本中。

有人能帮忙吗!

提前致谢..

android classnotfoundexception android-multidex android-proguard

5
推荐指数
1
解决办法
758
查看次数

使用AndroidX时找不到辅助dex文件中的MultiDexApplication类

我正在使用'androidx.multidex:multidex:2.0.0',我使用以下命令从清单中指向MultiDexApplication类:

<application
    android:name="androidx.multidex.MultiDexApplication"
    ...
Run Code Online (Sandbox Code Playgroud)

在build.gradle上,我还添加了以下条目:

defaultConfig {
    ...
    multiDexEnabled true
    ...
Run Code Online (Sandbox Code Playgroud)

在早于5.0(Android 21)的Android版本中运行应用程序时,我收到以下异常:

java.lang.RuntimeException: Unable to instantiate application androidx.multidex.MultiDexApplication: java.lang.ClassNotFoundException: Didn't find class "androidx.multidex.MultiDexApplication" on path [...]
Run Code Online (Sandbox Code Playgroud)

我用APK浏览器,我看到MultiDexApplication类和其他MultiDex辅助类,其中在classes2.dex文件.这可能就是为什么它找不到这个课程.

我必须强制这些类在主classes.dex文件上吗?怎么解决这个问题?

android android-support-library android-multidex androidx

5
推荐指数
1
解决办法
777
查看次数