Android Studio:意外的顶级例外: [英] Android Studio : UNEXPECTED TOP-LEVEL EXCEPTION:

查看:29
本文介绍了Android Studio:意外的顶级例外:的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我该如何解决这个错误

错误:任务:app:dexDebug"的执行失败.com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command'/Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/bin/java''完成非零退出值 2

Error:Execution failed for task ':app:dexDebug'. com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2

App Build.gradle

App Build.gradle

apply plugin: 'com.android.application'

android {
compileSdkVersion 22
buildToolsVersion "22.0.1"


packagingOptions {
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/ASL2.0'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/notice.txt'
}

defaultConfig {
    applicationId "com.app"
    minSdkVersion 10
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
}

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

dependencies {

compile 'com.android.support:appcompat-v7:22.1.1' // Do NOT use 22.2.0 even it is newer one. It reported to cause some problems with other dependencies.
compile fileTree(dir: 'libs', include: '*.jar')
compile('com.google.android.gms:play-services:7.5.+')
        {
            exclude module: 'support-v4'
        }
compile group:'com.octo.android.robospice', name:'robospice-spring-android', version:'1.4.7'

compile 'com.octo.android.robospice:robospice-spring-android:1.4.7'

compile group:'org.codehaus.jackson', name:'jackson-mapper-asl', version:'1.9.11'

compile 'com.fasterxml.jackson.core:jackson-databind:2.2.2'

compile 'com.fasterxml.jackson.core:jackson-annotations:2.2.2'

compile 'com.fasterxml.jackson.core:jackson-core:2.2.2'

compile 'com.google.code.gson:gson:2.2.4'

compile 'com.octo.android.robospice:robospice-ormlite:1.4.6'

compile('org.simpleframework:simple-xml:2.7.1') {
//        exclude module: 'xpp3'
//        exclude group: 'stax'
    exclude group: 'xpp3', module: 'xpp3'
    exclude group: 'stax', module: 'stax'
    exclude group: 'stax', module: 'stax-api'
}

}

项目梯度

// Top-level build file where you can add configuration options common to all sub-projects/modules.

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

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
}

allprojects {
repositories {
    jcenter()
}
}

Android Mainfest

Android Mainfest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.app" >

<!-- Permission - Internet Connect -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />

<!-- Permission - Location - GPS Service -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<!-- Network State Permissions -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<!-- Call Phone Permissions -->
<uses-permission android:name="android.permission.CALL_PHONE" />

<application
    android:name=".app.AppHelper"
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">

    <service
        android:name="com.octo.android.robospice.Jackson2SpringAndroidSpiceService"
        android:exported="false" />

    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="AIzaSyCU__5jhNC-QaU9tXNpr7ikPio3km1UYe8" />

    <activity
        android:name=".ui.splash.SplashActivity"
        android:label="@string/app_name"
        android:noHistory="true"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name=".ui.base.BaseDrawerFragmentActivity"
        android:configChanges="locale"
        android:label=""
        android:launchMode="singleTask"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme">
    </activity>

</application>

库文件夹现在不存在 Libs 文件夹

Libs Folder No Libs Folder Exist Now

推荐答案

欢迎光临.您正处于 Android gradle 地狱的第一步.

Welcome. You are at the first step of Android gradle hell.

  1. 在 SDK Manager 中将您的 Android SDK 组件更新为最新的组件,包括 Extra > Google Repository(建议在 Extra 中添加几乎所有组件).

  1. Update your Android SDK components in SDK Manager to latest one including Extra > Google Repository (recommend to add almost all in Extra).

让我们清理您当前的文件.

Let's wash up your current file.

  • AndroidManifest.xml:删除 行.它是多余的,因为 gradle 文件已经定义了它.

  • AndroidManifest.xml: Remove the <uses-sdk ... /> lines. It's redundant as gradle file already defines it.

Build.gradle:注释所有 compile files('libs/xxxxxxx.jar') 行.第一行 compile fileTree(dir: 'libs', include: ['*.jar']) 将包含 libs 文件夹中的所有 jar 文件.并且,使用 maven 存储库中的 compile 而不是 jar 文件,以保持您的依赖项新鲜.

Build.gradle: Comment all compile files('libs/xxxxxxx.jar') lines. The first line compile fileTree(dir: 'libs', include: ['*.jar']) will include all jar files in libs folder. And, use compile from maven repository not jar files in order to maintain your dependencies fresh.

例如,SimpleXML 具有如下的存储库 ID.将 compile fileTree(dir: 'libs', include: ['*.jar']) 行的代码放在下面,并删除 libs 文件夹中的 'simple-xml-2.7.1.jar' 文件.

For example, SimpleXML has repository id as below. Place the code below of the compile fileTree(dir: 'libs', include: ['*.jar']) line and remove 'simple-xml-2.7.1.jar' file in libs folder.

compile('org.simpleframework:simple-xml:2.7.1') {
    exclude module: 'stax'
    exclude module: 'stax-api'
    exclude module: 'xpp3'
}

同样,在 libs 文件夹中找到每个 jar 文件的存储库 ID,并将其替换为 compile fileTree(dir: 'libs', include: ['*.jar']) 第一行的下方由一个.仅将在 Maven 存储库中找不到的 jar 文件保留在 libs 文件夹中.

Likewise, find repository id of each jar file in your libs folder and replace it below of the compile fileTree(dir: 'libs', include: ['*.jar']) line one by one. Make only jar files which unable to find in maven repository remain in libs folder.

最后,删除 proguardFiles 行.您需要在一般情况下找到并解决问题,然后再应用 progruard.

Finally, remove proguardFiles line. You need to find and fix the problem in general condition, then apply progruard afterward.

  1. 将 buildToolsVersion 和 compileSdkVersion 的版本设置为最新版本.

我今天的推荐如下,
(当有人将来看到此帖子时,数字可能会有所不同)

My recommendation of today is as below,
(numbers may vary when someone will see this post in the future)

android {
    compileSdkVersion 22
    buildToolsVersion '22.0.1'

    dexOptions {
        preDexLibraries = false
        javaMaxHeapSize "2g"
    }
    defaultConfig {
        ...
        multiDexEnabled = false
    }
    lintOptions {
        abortOnError false
        disable 'InvalidPackage'
    }

    ...
}


dependencies {
    compile 'com.android.support:appcompat-v7:22.1.1' // Do NOT use 22.2.0 even it is newer one. It reported to cause some problems with other dependencies.
    compile fileTree(dir: 'libs', include: '*.jar')
    compile('com.google.android.gms:play-services-gcm:7.5.+')
        {
            exclude module: 'support-v4'
        }
} 

    再次
  1. 命令gradle assembleDebug.(对于 Windows,gradlew assembleDebug)

  1. command gradle assembleDebug again. (for Windows, gradlew assembleDebug)

如果再次失败,尝试一一查找并修复依赖版本冲突问题.您可能会在我的代码中看到 exclude module: ... .这些解决了冲突问题.链接中有详细说明:https://stackoverflow.com/a/30649660/361100

If failed again, try to find and fix dependencies version conflict issues one by one. You may see exclude module: ... in my code. These resolve the conflict issue. Detailed instruction is given at the link: https://stackoverflow.com/a/30649660/361100

这篇关于Android Studio:意外的顶级例外:的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆