繁体   English   中英

Android Gradle构建版本EXCEPTION FROM SIMULATION错误

[英]Android Gradle build release EXCEPTION FROM SIMULATION error

在我的项目中,我决定包含Appsee Library,但是一旦我这样做,我就开始在尝试运行gradle assembleRelease并构建我的应用程序的发布版本时收到Exception From Simulation错误。 这是错误日志:

Error:Execution failed for task ':startActivity:dexRelease'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    /Users/hardartcore/Library/Android/sdk/build-tools/21.1.2/dx -JXmx4g --dex --output /Users/hardartcore/Desktop/sworkspace/Work/startActivity/build/intermediates/dex/release --input-list=/Users/hardartcore/Desktop/sworkspace/Work/startActivity/build/intermediates/tmp/dex/release/inputList.txt
  Error Code:
    1
  Output:
    EXCEPTION FROM SIMULATION:
    expected type int but found cfz
    ...at bytecode offset 0000000d
    ...while working on block 000d
    ...while working on method <clinit>:()V
    ...while processing <clinit> ()V
    ...while processing cfz.class
    1 error; aborting

我在谷歌做了一些研究,但没有看到任何关于这种错误的解释以及为什么会发生这种情况。 如果我删除AppSee jar库一切正常,我可以构建我的应用程序。

我的build.gradle文件:

buildscript {
    repositories {
        maven { url 'http://download.crashlytics.com/maven' }
    }

    dependencies {
        classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.14.7'
    }
}

apply plugin: 'com.android.application'

apply plugin: 'crashlytics'

repositories {
    maven {
        url 'http://download.crashlytics.com/maven'
    }
}

android {

    signingConfigs {
        release_config {
            storeFile file('****')
            keyAlias '*****'
            keyPassword '*****'
            storePassword '*****'
        }
    }

    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.startactivity"
        minSdkVersion 14
        targetSdkVersion 21
        renderscriptTargetApi 20
        renderscriptSupportModeEnabled true
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-project.txt'
            signingConfig signingConfigs.release_config
            buildConfigField "boolean", "USE_CRASHLYTICS", "true"
            ext.enableCrashlytics = true
        }
        debug {
            debuggable true
            buildConfigField "boolean", "USE_CRASHLYTICS", "false"
            ext.enableCrashlytics = false
        }
    }

    dexOptions {
        javaMaxHeapSize "4g"
        preDexLibraries = false
    }
}

dependencies {
    compile project(':nineOldAndroids')
    compile project(':robotoTextView')
    compile project(':roundedImageView')
    compile project(':securePreferences')
    compile project(':viewPagerIndicator')
    compile project(':facebookSDK')
    compile project(':styledDialogs')
    compile project(':swipeListView')
    compile project(':memorizingActivity')
    compile project(':photoView')
    compile project(':apptentiveandroidsdk')
    compile project(':floatingActionButton')
    compile 'com.android.support:support-v4:21.0.3'
    compile 'com.google.code.gson:gson:2.3'
    compile files('libs/asmack-android-8-4.0.4-SNAPSHOT-2014-08-20.jar')
    compile files('libs/crittercism_v4_5_1_sdkonly.jar')
    compile files('libs/logentries-android-2.1.2.jar')
    compile files('libs/okhttp-2.1.0.jar')
    compile files('libs/okhttp-urlconnection-2.1.0.jar')
    compile files('libs/okio-1.2.0.jar')
    compile files('libs/org.xbill.dns_2.1.6.jar')
    compile files('libs/picasso-2.4.0.jar')
    compile files('libs/retrofit-1.9.0.jar')
    compile 'com.crashlytics.android:crashlytics:1.1.13'
    compile files('libs/appsee.jar') // THIS CAUSE THE ERROR
    // Google Play Services separated APIs
    compile 'com.google.android.gms:play-services-base:6.5.87'
    compile 'com.google.android.gms:play-services-maps:6.5.87'
    compile 'com.google.android.gms:play-services-location:6.5.87'
    compile 'com.android.support:appcompat-v7:21.0.3'
}

PS只有在构建发布版本时才会发生这种情况,在调试模式下它不会发生。

提前致谢!

因此,在经过一些研究并联系Appsee支持后,我找到了解决自己问题的方法。 是的,这是一个问题,因为appsee jar,但主要原因是这个jar使用的org.jcodec包。 因此,在proguard文件中包含这些设置应解决此问题:

# AppSee integration
-optimizations !code/*,!field/*,!class/merging/*,!method/*
-keep class com.appsee.** { *; }
-keep class org.jcodec.** { *; }
-dontwarn com.appsee.**

希望这有助于其他人!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM