Android Gradle build release EXCEPTION FROM SIMULATION 错误
Android Gradle build release EXCEPTION FROM SIMULATION error
在我的项目中,我决定包含 Appsee 库,但是一旦我这样做了,我在尝试 运行 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
我在 google 中做了一些研究,但没有看到任何关于这种错误的解释以及为什么会发生这种情况。如果我删除 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'
}
P.S。这仅在我构建发布版本时发生,在调试模式下它不会发生。
提前致谢!
因此,经过一些研究并联系 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.**
希望这对其他人有帮助!
在我的项目中,我决定包含 Appsee 库,但是一旦我这样做了,我在尝试 运行 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
我在 google 中做了一些研究,但没有看到任何关于这种错误的解释以及为什么会发生这种情况。如果我删除 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'
}
P.S。这仅在我构建发布版本时发生,在调试模式下它不会发生。
提前致谢!
因此,经过一些研究并联系 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.**
希望这对其他人有帮助!