Android Studio中的链接错误

时间:2014-09-09 08:40:22

标签: android android-studio build.gradle

我的Android应用程序在发布版本中运行良好 但是,调试版本不会。

Android Studio,SDK等,每个环境都是最新版本。

使用调试版本时,模拟器会运行许多警告,但是一旦真正的设备在使用以下logcat启动后就会崩溃。

  

W / dalvikvm:班级的链接   'Landroid /支持/ V4 /媒体/ TransportMediatorJellybeanMR2 $ 1;'失败   W / dalvikvm:班级的链接   'Landroid /支持/ V4 /媒体/ TransportMediatorJellybeanMR2 $ 2;'失败   W / dalvikvm:班级的链接   'Landroid /支持/ V4 /媒体/ TransportMediatorJellybeanMR2;'失败   W / dalvikvm:班级的链接   'Landroid /支持/ V4 / OS / ParcelableCompatCreatorHoneycombMR2;'失败   W / dalvikvm:无法解析超类   Landroid /支持/ V4 /打印/ PrintHelperKitkat $ 1; (229)W / dalvikvm:链接   类'Landroid / support / v4 / print / PrintHelperKitkat $ 1;'失败   W / dalvikvm:班级的链接   'Landroid /支持/ V4 /打印/ PrintHelperKitkat $ 2 $ 1 $ 1;'失败   W / dalvikvm:无法解析超类   Landroid /支持/ V4 /打印/ PrintHelperKitkat $ 2; (229)W / dalvikvm:链接   类'Landroid / support / v4 / print / PrintHelperKitkat $ 2;'失败   W / dalvikvm:无法解析超类   Landroid /支撑/ V4 /视图/ AccessibilityDelegateCompatIcs $ 1; (918)   W / dalvikvm:班级的链接   'Landroid /支持/ V4 /视图/ AccessibilityDelegateCompatIcs $ 1;'失败   W / dalvikvm:无法解析超类   Landroid /支撑/ V4 /视图/ AccessibilityDelegateCompatJellyBean $ 1; (918)   W / dalvikvm:班级的链接   'Landroid /支持/ V4 /视图/ AccessibilityDelegateCompatJellyBean $ 1;'   失败W / dalvikvm:班级的链接   'Landroid /支持/ V4 /视图/ MenuItemCompatIcs $ OnActionExpandListenerWrapper;'   失败W / dalvikvm:无法解析超类   Landroid /支撑/ V4 /视图/ ViewPropertyAnimatorCompatICS $ 1; (11)   W / dalvikvm:班级的链接   'Landroid /支持/ V4 /视图/ ViewPropertyAnimatorCompatICS $ 1;'失败   W / dalvikvm:班级的链接   'Landroid /支持/ V4 /视图/无障碍/ AccessibilityManagerCompatIcs $ 1;'   失败W / dalvikvm:无法解析超类   Landroid /支持/ V4 /视图/无障碍/ AccessibilityNodeProviderCompatJellyBean $ 1;   (948)W / dalvikvm:班级的链接   'Landroid /支持/ V4 /视图/无障碍/ AccessibilityNodeProviderCompatJellyBean $ 1;'   失败W / dalvikvm:无法解析超类   Landroid /支持/ V4 /视图/无障碍/ AccessibilityNodeProviderCompatKitKat $ 1;   (948)W / dalvikvm:班级的链接   'Landroid /支持/ V4 /视图/无障碍/ AccessibilityNodeProviderCompatKitKat $ 1;'   失败W / dalvikvm:班级的链接   'Landroid /支持/ V4 /空间/ SearchViewCompatHoneycomb $ 1;'失败   W / dalvikvm:班级的链接   'Landroid /支持/ V4 /空间/ SearchViewCompatHoneycomb $ 2;'失败   W / dalvikvm:无法解析超类   Landroid /支持/ V4 /空间/ SearchViewCompatIcs $ MySearchView; (1026)   W / dalvikvm:班级的链接   'Landroid /支持/ V4 /空间/ SearchViewCompatIcs $ MySearchView;'失败   W / dalvikvm:班级的链接   'LCOM /谷歌/机器人/克/分析/ Google分析$ B;'失败   W / dalvikvm:无法解析超类   LCOM /谷歌/机器人/克/普通/ ErrorDialogFragment; (25)W / dalvikvm:   类'Lcom / google / android / gms / common / ErrorDialogFragment;'的链接   失败W / dalvikvm:班级的链接   'LCOM /谷歌/机器人/克/普通/图像/ $的ImageManagerë;'失败   W / dalvikvm:无法解析超类   LCOM /谷歌/机器人/克/地图/ MapFragment; (26)W / dalvikvm:链接   class'Lcom / google / android / gms / maps / MapFragment;' W / dalvikvm失败了:   无法解析的超类   LCOM /谷歌/机器人/克/地图/ StreetViewPanoramaFragment; (26)   W / dalvikvm:班级的链接   'LCOM /谷歌/机器人/克/地图/ StreetViewPanoramaFragment;'失败   W / dalvikvm:无法解析超类   LCOM /谷歌/安卓/ GMS / tagmanager / BB $ 1; (884)W / dalvikvm:链接   class'Lcom / google / android / gms / tagmanager / bb $ 1;' W / dalvikvm失败了:   无法解析的超类   LCOM /谷歌/机器人/克/钱包/片段/ WalletFragment; (26)   W / dalvikvm:班级的链接   'LCOM /谷歌/机器人/克/钱包/片段/ WalletFragment;'失败   W / dalvikvm:无法解析超类   LCOM /谷歌/ tagmanager / LRUCache $ 1; (884)W / dalvikvm:班级的链接   'LCOM /谷歌/ tagmanager / LRUCache $ 1;'失败W / dalvikvm:班级的链接   'Lfacebook4j /管理/ APIStatisticsOpenMBean;' W / dalvikvm失败了:   类'Ltwitter4j / management / APIStatisticsOpenMBean;'的链接失败   W / dalvikvm:班级的链接   'LCOM /谷歌/安卓/ GMS /游戏/内部/ PopUpManager将$ PopupManagerHCMR1;'   E / dalvikvm失败:LinearAlloc超出容量(5242880),最后= 2184   E / dalvikvm:VM中止

我的build.gradle写了

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.2'
    }
}

apply plugin: 'com.android.application'

android {
    compileSdkVersion 20
    buildToolsVersion "20.0.0"

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
//          jni.srcDirs = ['jni']
            jniLibs.srcDirs = ['libs']
        }

        instrumentTest.setRoot('tests')
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }

    signingConfigs {
        release {
            storeFile file('~~~~~.keystore')
            storePassword '********'
            keyAlias '~~~~~'
            keyPassword '********'
        }
    }

    buildTypes {
        release {
            debuggable false
            runProguard true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), file('proguard-project.txt')
            signingConfig signingConfigs.release
        }
        debug {
            debuggable true
            runProguard false
        }
    }

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
    }
}

repositories {
    mavenCentral()
    maven { url 'http://twitter4j.org/maven2' }
}

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile 'com.android.support:support-v4:20.0.0'
//  compile 'com.android.support:appcompat-v7:20.0.0'
    compile 'com.google.android.gms:play-services:5.2.08'
    compile 'org.twitter4j:twitter4j-core:3.1.0-SNAPSHOT'
    compile 'org.facebook4j:facebook4j-core:1.1.12'
    compile 'com.google.code.gson:gson:2.3'
}

我试图清理gradle和这个android项目,删除缓存(〜/ .gradle)和构建目录。 但问题没有解决。

看来,使用gradle安装的库没有链接或包含在应用程序中。

请帮忙。

1 个答案:

答案 0 :(得分:0)

基本上,您所面临的是您的通用gradle home目录(〜/ .gradle)没有(或加载)项目所需的库。 (可能还有更多关于它。但是,这就是我的理解)

如果从Github下载项目,则会发生这种情况。

  

下载项目中必须有一个目录名“gradle”。   您可以做的是,转到Android Studio的偏好设置 - >去   “Gradle” - >并在更新“服务目录路径”中使用路径   您下载的项目中的gradle文件夹。

Android Studio将开始为项目提取库。大约需要20分钟。当你再次同步时,应该没问题。

PS:可能存在与此问题的gradle构建相关的逻辑。但是,我还没有学到这些。所以,希望这对你有帮助。