Android studio许多错误:找不到类';android.XXX';

Android studio许多错误:找不到类';android.XXX';,android,android-studio,linphone,Android,Android Studio,Linphone,我正在使用Android Studio 2.1.2,调试设备Android 4.4.2 API19,构建环境: android { compileSdkVersion 23 buildToolsVersion "23.0.2" } 我已尝试重新打开项目、使缓存无效、禁用instantRun,但仍不断出现以下错误: 06-24 01:15:08.302 27320-27320/org.linphone E/InstantRun: Could not find slices in

我正在使用Android Studio 2.1.2,调试设备Android 4.4.2 API19,构建环境:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
}
我已尝试重新打开项目、使缓存无效、禁用instantRun,但仍不断出现以下错误:

06-24 01:15:08.302 27320-27320/org.linphone E/InstantRun: Could not find slices in APK; aborting.
06-24 01:15:08.322 27320-27320/org.linphone E/dalvikvm: Could not find class 'android.os.PersistableBundle', referenced from method org.linphone.LinphoneLauncherActivity.access$super
06-24 01:15:08.322 27320-27320/org.linphone E/dalvikvm: Could not find class 'android.os.PersistableBundle', referenced from method org.linphone.LinphoneLauncherActivity.access$super
06-24 01:15:08.322 27320-27320/org.linphone E/dalvikvm: Could not find class 'android.media.session.MediaController', referenced from method org.linphone.LinphoneLauncherActivity.access$super
06-24 01:15:08.322 27320-27320/org.linphone E/dalvikvm: Could not find class 'android.widget.Toolbar', referenced from method org.linphone.LinphoneLauncherActivity.access$super
06-24 01:15:08.332 27320-27320/org.linphone E/dalvikvm: Could not find class 'android.app.ActivityManager$TaskDescription', referenced from method org.linphone.LinphoneLauncherActivity.access$super
06-24 01:15:08.332 27320-27320/org.linphone E/dalvikvm: Could not find class 'android.app.SharedElementCallback', referenced from method org.linphone.LinphoneLauncherActivity.access$super
06-24 01:15:08.332 27320-27320/org.linphone E/dalvikvm: Could not find class 'android.os.PersistableBundle', referenced from method org.linphone.LinphoneLauncherActivity.access$super
06-24 01:15:08.342 27320-27320/org.linphone E/dalvikvm: Could not find class 'android.app.SharedElementCallback', referenced from method org.linphone.LinphoneLauncherActivity.access$super
06-24 01:15:08.342 27320-27320/org.linphone E/dalvikvm: Could not find class 'android.app.assist.AssistContent', referenced from method org.linphone.LinphoneLauncherActivity.access$super
06-24 01:15:08.352 27320-27320/org.linphone E/dalvikvm: Could not find class 'android.view.SearchEvent', referenced from method org.linphone.LinphoneLauncherActivity.access$super
06-24 01:15:08.352 27320-27320/org.linphone E/dalvikvm: Could not find class 'android.os.PersistableBundle', referenced from method org.linphone.LinphoneLauncherActivity.access$super

有人能帮我吗?

在阅读许多类似的问题时,我发现启用Multidex,credits to可以解决这个问题。他还发布了一些我推荐阅读的有用链接。至少它对我起了作用(确切地说:我现在只剩下一个错误,而以前是几百个)

简而言之:只需在gradle defaultConfig中添加
multiDexEnabled true
,并添加此依赖项
compile'com.android.support:multidex:1.0.1'
,即可启用multidex。 最后,通过向应用程序类中添加以下代码来安装Multidex:

@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
}
当然,另一个选择是防止64K方法限制,因此您不再需要多重索引。您可以通过减少Gradle文件中(未使用的)依赖项的数量来做到这一点,或者使用更具体的依赖项(google play services的一个很好的示例由wittyurchin在中提供)

但是,如果确实需要Multidex,则可能会遇到一些问题,如我发现的问题:

1) 即时运行在构建目标API设备时被禁用(从Android Studio运行应用程序时,您将看到弹出错误消息)

2) 如果您使用Robolectric进行单元测试,您可能将无法再运行测试。您可以通过扩展
MultiDex.install(这个)先前的代码。与其自己解释一切,不如更容易地检查问题,并回答苏伯斯的问题


另外,似乎我不一定需要
编译'com.android.support:multidex:1.0.1'
来让multidex工作,但是,我看到很多回复说它是必需的。如果有人在这方面有更多的建议,请便

我在使用几乎相同的配置(以及Android API19-4.4调试设备)时也面临同样的问题

概述修复我案例中错误的步骤。(基于建议、缩小和预防规则):

  • 更新了gradle版本(只需在文件->设置->构建、执行、部署->构建工具->gradle::(右面板)项目级设置->使用默认gradle包装器中设置默认选项) 如果必须使用特定版本的gradle,可以尝试跳过此步骤

  • 清理项目+重建项目(如果您也想重新启动Android Studio,则可能是)
  • 从module(app)build.gradle中删除依赖项--确保复制依赖项值以在下一步中还原
  • 同步/渐变构建,以获取错误(只是一个安全保护步骤,很有趣,但有时由于某种原因,即使配置发生变化,Android studio也会独立运行)
  • 在同一模块(应用程序)build.gradle中,按照步骤3中的说明重新添加依赖项`

    如果您想知道为什么步骤3、4、5->有人指出,包含依赖项后的渐变更新可能会导致这些错误`

  • 最后也是最重要的:压缩代码并使用正式解释的程序规则

    由于我是Android Studio的新手,我觉得我的项目虽然是一个非常小的应用程序,但可能会被多个实验性的库包含+如此多的注释(以及其中的非活动代码)所膨胀,导致64K?(不可能),非法引用(可能!);在阅读了@PKuijpers的答案后,这只是一个直观的猜测(谢谢!)。老实说,我不想包括multiDex,因为在阅读了官方文件之后,我确信我的应用程序不是Pokemono或NFS,也不是大到可以使用multiDex的


  • 帮我解决了,呸!我认为Android resource monitor的内存利用率也有所提高,这是一个副产品

    谢谢你们,我再次禁用instantRun来解决这个问题,我将感谢你们的帮助。