如何修复“ NoClassDefFoundError:活动名称的解析失败”

时间:2018-09-25 17:43:17

标签: android gradle runtime-error google-play-services

我的应用在开始时崩溃,并产生以下错误。

  

找不到Google Play服务资源。检查您的项目配置,以确保包括资源。

因此,为了纠正错误,我将build.gradle(项目级别)从更改为

    classpath 'com.android.tools.build:gradle:3.1.2'
    classpath 'com.google.gms:google-services:3.0.0'
    classpath 'io.fabric.tools:gradle:1.25.4'`

classpath 'com.android.tools.build:gradle:3.1.4'
    classpath 'com.google.gms:google-services:4.1.0'
    classpath 'io.fabric.tools:gradle:1.25.4'

和build.gradle(应用程序级别)

implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.google.android.gms:play-services-gcm:11.8.0'
implementation 'com.google.firebase:firebase-core:11.8.0'
implementation 'com.google.firebase:firebase-crash:11.8.0'
implementation 'com.google.firebase:firebase-auth:11.8.0'
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.3'

implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.google.android.gms:play-services-gcm:15.0.1'
implementation 'com.google.firebase:firebase-core:16.0.3'
implementation 'com.google.firebase:firebase-crash:11.8.0'
implementation 'com.google.firebase:firebase-auth:11.8.0'
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.5'

更改上述gradle代码后,我的项目运行正常,没有出现以下错误。

  

找不到Google Play服务资源。检查您的项目配置,以确保包括资源。

但是上述重大变化会导致另一个错误,该错误是在运行时将活动从一个我调用到另一个我无法解决的错误时产生的,如下所示。

  

java.lang.NoClassDefFoundError:无法解决以下问题:Lcom /..../ insta / InstaSplashActivity;

这里,InstaSplashActivity是一个活动,将从第一个活动中调用该活动,这会导致崩溃。

3 个答案:

答案 0 :(得分:0)

根据documentation抛出:

  

如果Java虚拟机或ClassLoader实例尝试加载   类的定义(作为常规方法调用的一部分或作为一部分)   新表达式创建新实例的过程)并且没有定义   可以找到该班级的。

SO post提供了一些解决方案:

  
      
  • 转到项目的“属性”。
  •   
  • 选择“ Java构建路径”
  •   
  • 选择“订购和出口”标签
  •   
  • 您应该在此处看到所选项目的“ src”和“ gen”路径以及相关性。
  •   
  • 他们列出的顺序首先是“ src”,然后是“ gen”路径
  •   
  • 我切换了它们,以便在“ src”之前构建“ gen”文件夹
  •   
     

gen -项目中的自动代码(来自依赖项和引用)

     

src -项目中的源代码

     

     

尝试转到项目-> 属性-> Java构建路径-> 订购&   导出,并确保已检查您的Android私有库   项目以及您正在使用的所有其他图书馆项目。

答案 1 :(得分:0)

删除行

implementation 'com.google.android.gms:play-services-gcm:15.0.1'

构建项目

添加此行

  

实现'com.google.android.gms:play-services:3.2。+'

重新构建

也仍然无法正常工作,通过模块设置中的依赖项来添加行

答案 2 :(得分:0)

只需卸载快速修复即可解决此问题。

快速修复不允许运行dex文件,并且在运行时会自动修复android studio的某些后端文件,因此,android studio无法正确获取文件,因此我被完全删除了quick-heal现在我的项目运行良好:)