gradlew assembRelease 打包


完整的build.gradle文件如下:

`apply plugin: 'com.android.application'def releaseTime() {    return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))}android {    compileSdkVersion 23    buildToolsVersion "23.0.2"    defaultConfig {        //应用的包名        applicationId "cn.emnet.goodway"        minSdkVersion 15        targetSdkVersion 23        versionCode 1        versionName "1.0"        // dex突破65535的限制        multiDexEnabled true        // 默认是umeng的渠道        manifestPlaceholders = [UMENG_CHANNEL_VALUE: "umeng"]    }    lintOptions {        abortOnError false    }    signingConfigs {        debug {            // No debug config        }        release {            storeFile file("D:/Workspaces/Android_stuido/Project_GoodWay/mykey.keystore")            storePassword "goodway"            keyAlias "goodway"            keyPassword "goodway"        }    }    buildTypes {        debug {            // 显示Log            buildConfigField "boolean", "LOG_DEBUG", "true"            versionNameSuffix "-debug"            minifyEnabled false            zipAlignEnabled false            shrinkResources false            signingConfig signingConfigs.debug        }        release {            // 不显示Log            buildConfigField "boolean", "LOG_DEBUG", "false"            minifyEnabled false            zipAlignEnabled true            // 移除无用的resource文件            shrinkResources true            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'            signingConfig signingConfigs.release            applicationVariants.all { variant ->                variant.outputs.each { output ->                    def outputFile = output.outputFile                    if (outputFile != null && outputFile.name.endsWith('.apk')) {                        // 输出apk名称为boohee_v1.0_2015-01-15_wandoujia.apk                        def fileName = "goodway_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"                        output.outputFile = new File(outputFile.parent, fileName)                    }                }            }        }    }//**使用的批量打包**    productFlavors {        xiaomi {}        _360 {}        baidu {}        wandoujia {}    }    productFlavors.all {        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]    }}//**工程依赖的包**dependencies {    compile fileTree(include: ['*.jar'], dir: 'libs')    testCompile 'junit:junit:4.12'    compile 'com.android.support:appcompat-v7:23.1.0'    compile 'com.android.support:design:23.1.0'    compile 'com.squareup.okhttp:okhttp:2.0.0'    compile 'com.umeng.analytics:analytics:latest.integration'    compile 'com.google.code.gson:gson:2.4'}

在写代码的过程中,遇到了一个问题,走了不少的弯路,在我同学的帮助下, 在零点前终于搞定了。
下面是遇到的问题

Caused by: java.lang.IllegalStateException: Could not find tools.jar

没有找到tools.jar包。
详细的LOG 如下:

FAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':app:compileBaiduReleaseJavaWithJavac'.> Could not find tools.jar* Try:        Run with --info or --debug option to get more log output.* Exception is:org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:compileBaiduReleaseJavaWithJavac'.        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)        at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)        at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:310)        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23)        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:88)        at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62)        at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)        at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:68)        at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62)        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:55)        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:149)        at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106)        at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86)        at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:90)        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41)        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)        at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:50)        at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:27)        at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:40)        at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:169)        at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237)        at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210)        at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35)        at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)        at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206)        at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)        at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)        at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)        at org.gradle.launcher.Main.doAction(Main.java:33)        at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)        at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54)        at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35)        at org.gradle.launcher.GradleMain.main(GradleMain.java:23)        at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:33)        at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:130)        at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48)Caused by: java.lang.IllegalStateException: Could not find tools.jar        at org.gradle.internal.jvm.JdkTools.(JdkTools.java:50)        at org.gradle.internal.jvm.JdkTools.current(JdkTools.java:41)        at org.gradle.api.internal.tasks.compile.JavaHomeBasedJavaCompilerFactory$SystemJavaCompilerFactory.create(JavaHomeBasedJavaCompilerFactory.java:77)        at org.gradle.api.internal.tasks.compile.JavaHomeBasedJavaCompilerFactory$SystemJavaCompilerFactory.create(JavaHomeBasedJavaCompilerFactory.java:75)        at org.gradle.api.internal.tasks.compile.JavaHomeBasedJavaCompilerFactory.findCompiler(JavaHomeBasedJavaCompilerFactory.java:57)        at org.gradle.api.internal.tasks.compile.JavaHomeBasedJavaCompilerFactory.create(JavaHomeBasedJavaCompilerFactory.java:44)        at org.gradle.api.internal.tasks.compile.JavaHomeBasedJavaCompilerFactory.create(JavaHomeBasedJavaCompilerFactory.java:28)        at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.createCompileTask(JdkJavaCompiler.java:55)        at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:44)        at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:33)        at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:101)        at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:50)        at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:36)        at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:34)        at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:25)        at org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:157)        at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:137)        at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:91)        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)

解决方法如下:
将jdk下的lib文件夹下的tools.jar 复制一份到Android studio 安装目录的lib下;
重新构建Gradle,在终端使用命令 :
gradlew assembRelease --stacktrace 打包。
打包成功你会在项目的app\build\outputs\apk文件夹下看到你打的包。

语言不行,凑合看吧! 不懂得留言吧!尽力为你解决!

更多相关文章

  1. android文件操作的实例
  2. Android 以流的方式读取服务器图片文件
  3. Android 文件浏览器源码
  4. Android文件保存和读取
  5. android Studio导入source文件
  6. android studio 使用adb 命令传递文件到android 设备的方法
  7. Android NDK开发使用以及so文件生成和注意事项
  8. 关于获取Android中文件内容有感
  9. iOS开发-Android 录制的mp4视频文件在IOS中无法播放问题

随机推荐

  1. Google 发布 Android(安卓)性能优化典范
  2. Android(安卓)Handler 作用以及使用
  3. 8大应用助你个性化定制最Cool的Android手
  4. Android(安卓)ADB工具
  5. 最佳Android模拟器,你值得拥有
  6. Android(安卓)Intent使用
  7. android 布局长度单位深入研究
  8. 记一个Android(安卓)Launcher的bug
  9. 金九银十中,看看这31道Android面试题
  10. 窥探支付宝钱包android客户端的屏幕加密