Android Studio:意外的顶级例外:

时间:2015-06-13 14:23:44

标签: java android android-studio android-gradle build.gradle

如何解决此错误

  

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

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'
}

}

Project gradle

// 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

<?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文件夹

4 个答案:

答案 0 :(得分:5)

欢迎。你是Android gradle地狱的第一步。

  1. 将SDK Manager中的Android SDK组件更新为最新版本,包括Extra&gt; Google Repository(建议在Extra中添加几乎所有内容)。

  2. 让我们清理你当前的档案。

    • AndroidManifest.xml :删除<uses-sdk ... />行。它是多余的,因为gradle文件已经定义了它。

    • Build.gradle :评论所有compile files('libs/xxxxxxx.jar')行。第一行compile fileTree(dir: 'libs', include: ['*.jar'])将包含libs文件夹中的所有jar文件。并且,使用来自maven存储库的compile而不是jar文件,以便保持新的依赖关系。

  3. 例如,SimpleXML的存储库ID如下所示。将代码放在compile fileTree(dir: 'libs', include: ['*.jar'])行的下方,然后删除&#39; simple-xml-2.7.1.jar&#39; libs文件夹中的文件。

    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文件夹中。

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

    1. 将buildToolsVersion和compileSdkVersion的版本设置为最新版本。
    2. 我今天的建议如下,
      (当有人将来看到这篇文章时,数字可能会有所不同)

      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

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

答案 1 :(得分:1)

您是否尝试在build.gradle中注释掉以下内容:

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

参考:https://code.google.com/p/android/issues/detail?id=161605

答案 2 :(得分:0)

令人惊讶的是,这个对我有用

     ncalls  tottime  percall  cumtime  percall filename:lineno(function)
          1    0.004    0.004    0.033    0.033 <string>:2(<module>)
50000/10000    0.027    0.000    0.027    0.000 bst.py:39(lookup)
          1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
          1    0.000    0.000    0.000    0.000 {range}
          1    0.001    0.001    0.001    0.001 {time.sleep}

来源: Android Studio fails to debug with error org.gradle.process.internal.ExecException

答案 3 :(得分:0)

我导入所有Google Play服务API时出现了同样的错误,就像使用

一样

compile('com.google.android.gms:play-services:7.5.+')

尝试删除此行并仅导入所需的服务API:Google Play Services Setup