热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android4上安装AndroidStudio的NoClassDefFoundError

如何解决《Android4上安装AndroidStudio的NoClassDefFoundError》经验,为你挑选了2个好方法。

我正在将现有应用程序从Eclipse转换为Android Studio.但是,当我在运行4.x的设备上运行它时(我在模拟器上测试了几个版本),它会立即崩溃NoClassDefFoundError.

我已经尝试评论了对它找不到的类的引用,但总会有另一个.据我所知,犯罪类总是如此

    在我自己的代码中

    内部类(更新:通过更多调查,这个并不总是如此)

在5.0.1模拟器上一切正常(我没有要测试的设备).我的build.gradle文件相当长,但看起来像这样:

apply plugin: 'com.android.application'
apply plugin: 'android-apt'

def AAVersion = "2.7.1"

android {
    compileSdkVersion 19
    buildToolsVersion "21.1.1"

    defaultConfig {
        applicationId "com.myapp.android"
        minSdkVersion 8
        targetSdkVersion 19
        multiDexEnabled = true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

    packagingOptions {
        *snip*
    }
}

buildscript {
    repositories {
        mavenCentral()

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
    }
}

repositories {
    maven {
        url "https://repo.commonsware.com.s3.amazonaws.com"
    }
}

apt {
    arguments {
        androidManifestFile variant.outputs[0].processResources.manifestFile
        resourcePackageName 'com.pact.android'
    }
}

dependencies {
    *snip compile project(':...') declarations

    apt "com.googlecode.androidannotations:androidannotations:$AAVersion"
    compile "com.googlecode.androidannotations:androidannotations-api:$AAVersion"

    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
    compile 'com.android.support:support-v4:21.0.3'
    compile 'com.google.android.gms:play-services:3.1.36'

    *snip many more compile declarations*

    compile fileTree(dir: 'libs', include: ['*.jar'])
}

导致麻烦的类的一些示例:

在facebook库中实现接口的匿名类(作为库项目)

Parcelable.CREATOR 在我的模型中实现

一个扩展android.os.Library的内部类

我自己的代码中的内部类

从maven实现库中接口的类

出了什么问题,我该如何解决?



1> karl..:

我没有完全实现MultiDex支持,所以我的一些类不在正确的dex文件中.要修复它,你必须做的不仅仅是multiDexEnabled = truedefaultConfig块中设置.你还必须:

    包含compile 'com.android.support:multidex:1.0.1'在您的依赖项中

    让您的Application类扩展MultiDexApplication而不仅仅是Application.或者,你可以调用MultiDex.install()attachBaseContext()您的应用程序.

有关详细信息,请参阅https://developer.android.com/tools/building/multidex.html.



2> 小智..:

1)添加multiDexEnabled = true默认配置

2)com.android.support:multidex:1.0.0在依赖项中添加编译

3)Application类扩展MultiDexApplication而不仅仅是Application


推荐阅读
author-avatar
田文萍
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有