由于输出jar库为空,Android Studio proguardRelease失败
我已经将Eclipse中的一个项目导入到Android Studio 1.0.1中,该项目包含一个Android库项目(RuletaAfortunadaCore)和一个Android项目(RuletaAfortunada),还包含一些第三方库依赖项。在导入过程中,一切似乎都很好,但现在当我尝试构建它时,我从Gradle收到以下错误消息:由于输出jar库为空,Android Studio proguardRelease失败,android,eclipse,gradle,android-studio,Android,Eclipse,Gradle,Android Studio,我已经将Eclipse中的一个项目导入到Android Studio 1.0.1中,该项目包含一个Android库项目(RuletaAfortunadaCore)和一个Android项目(RuletaAfortunada),还包含一些第三方库依赖项。在导入过程中,一切似乎都很好,但现在当我尝试构建它时,我从Gradle收到以下错误消息: FAILURE: Build failed with an exception. * What went wrong: Execution failed fo
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':ruletaAfortunadaCore:proguardRelease'.
> java.io.IOException: The output jar is empty. Did you specify the proper '-keep' options?
从构建过程开始的整个输出:
Executing tasks: [clean, :ruletaAfortunada:compileDebugSources, :facebookSDK:compileDebugSources, :ruletaAfortunadaCore:compileDebugSources]
Configuration on demand is an incubating feature.
:facebookSDK:clean
:ruletaAfortunada:clean UP-TO-DATE
:ruletaAfortunadaCore:clean
:facebookSDK:compileLint
:facebookSDK:copyReleaseLint UP-TO-DATE
:facebookSDK:mergeReleaseProguardFiles UP-TO-DATE
:facebookSDK:preBuild
:facebookSDK:preReleaseBuild
:facebookSDK:checkReleaseManifest
:facebookSDK:prepareReleaseDependencies
:facebookSDK:compileReleaseAidl
:facebookSDK:compileReleaseRenderscript
:facebookSDK:generateReleaseBuildConfig
:facebookSDK:generateReleaseAssets UP-TO-DATE
:facebookSDK:mergeReleaseAssets
:facebookSDK:generateReleaseResValues UP-TO-DATE
:facebookSDK:generateReleaseResources
:facebookSDK:packageReleaseResources
:facebookSDK:processReleaseManifest
:facebookSDK:processReleaseResources
:facebookSDK:generateReleaseSources
:facebookSDK:compileReleaseJava
:facebookSDK:processReleaseJavaRes UP-TO-DATE
:facebookSDK:packageReleaseJar
:facebookSDK:compileReleaseNdk
:facebookSDK:packageReleaseJniLibs UP-TO-DATE
:facebookSDK:packageReleaseLocalJar
:facebookSDK:packageReleaseRenderscript UP-TO-DATE
:facebookSDK:bundleRelease
:ruletaAfortunada:preBuild
:ruletaAfortunada:preDebugBuild
:ruletaAfortunada:checkDebugManifest
:ruletaAfortunada:preReleaseBuild
:ruletaAfortunadaCore:compileLint
:ruletaAfortunadaCore:copyReleaseLint UP-TO-DATE
:ruletaAfortunadaCore:preBuild
:ruletaAfortunadaCore:preReleaseBuild
:ruletaAfortunadaCore:checkReleaseManifest
:ruletaAfortunadaCore:preDebugBuild
:ruletaAfortunadaCore:preDebugTestBuild
:ruletaAfortunadaCore:prepareComAndroidSupportSupportV42100Library
:ruletaAfortunadaCore:prepareComGoogleAndroidGmsPlayServices6587Library
:ruletaAfortunadaCore:prepareRuletaAfortunadaFacebookSDKUnspecifiedLibrary
:ruletaAfortunadaCore:prepareReleaseDependencies
:ruletaAfortunadaCore:compileReleaseAidl
:ruletaAfortunadaCore:compileReleaseRenderscript
:ruletaAfortunadaCore:generateReleaseBuildConfig
:ruletaAfortunadaCore:generateReleaseAssets UP-TO-DATE
:ruletaAfortunadaCore:mergeReleaseAssets
:ruletaAfortunadaCore:generateReleaseResValues UP-TO-DATE
:ruletaAfortunadaCore:generateReleaseResources
:ruletaAfortunadaCore:mergeReleaseResources
:ruletaAfortunadaCore:processReleaseManifest
:ruletaAfortunadaCore:processReleaseResources
:ruletaAfortunadaCore:generateReleaseSources
:ruletaAfortunadaCore:compileReleaseJava
:ruletaAfortunadaCore:extractReleaseAnnotations
:ruletaAfortunadaCore:mergeReleaseProguardFiles UP-TO-DATE
:ruletaAfortunadaCore:compileReleaseNdk
:ruletaAfortunadaCore:packageReleaseJniLibs UP-TO-DATE
:ruletaAfortunadaCore:packageReleaseRenderscript UP-TO-DATE
:ruletaAfortunadaCore:packageReleaseResources
:ruletaAfortunadaCore:proguardRelease FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':ruletaAfortunadaCore:proguardRelease'.
> java.io.IOException: The output jar is empty. Did you specify the proper '-keep' options?
该库项目的build.gradle文件的内容:
apply plugin: 'com.android.library'
android {
compileSdkVersion 13
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 9
targetSdkVersion 17
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
}
}
}
dependencies {
compile project(':facebookSDK')
compile 'com.android.support:support-v4:18.0.0'
compile 'com.google.code.gson:gson:2.2.4'
compile 'com.google.android.gms:play-services:+'
compile files('libs/chartboost.jar')
compile files('libs/mint-4.0.7.jar')
}
更新:我意识到名为RuletaAfortunadaCore的Android库项目可以作为一个独立项目构建,也可以作为一个模块构建,没有任何问题。它只是在构建使用它的整个RuletaAfortunada Android项目时失败
我认为,这种Android项目的build.gradle文件是由Android Studio创建的默认文件,所以里面没有什么有趣的东西。无论如何,在这里,以防万一:
// 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.0.0'
}
}
allprojects {
repositories {
jcenter()
}
}
这是settings.gradle:
include ':facebookSDK'
include ':ruletaAfortunadaCore'
include ':ruletaAfortunada'
最后,为了拥有所有这些功能,这是facebookSDK模块build.gradle:
apply plugin: 'com.android.library'
android {
compileSdkVersion 9
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 9
targetSdkVersion 9
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:support-v4:18.0.0'
compile files('libs/bolts-android-1.1.2.jar')
}
我在这里找到了一些有用的信息: 一个显著的区别是runProguard被更改为minifyEnabled。
但是,在完成本迁移主题中的步骤后,我仍然会遇到相同的生成错误。正如一个人所建议的,答案现在似乎已经消失了:-?,我的解决方案是在我的库项目的build.gradle中将minifyEnabled设置为false。就我将Android项目本身设置为true而言,proguard仍将执行,错误已消失。您使用的是哪一版本的Android Studio?可能是@shkschneider的重复版本,这不是因为我在升级我的As(Android Studio)后遇到同样的问题@Fran你能给我们看一些你的主要
-保留你的proguard文件的?我在这里确认同样的问题-Android Studio最近的一些变化?对我来说也没用。事实上,我已经从Eclipse重新导入了这个项目,看看它是否有效,因为我还没有对它做任何更改,同样的问题也存在。对我有效的解决方案是不要混淆库项目中的库(“minifyEnabled false”),而是让应用程序项目进行混淆。遗憾的是,我的答案(你选择的是一个好答案)被一位主持人删除了,尽管我要求解释,但我不知道为什么。