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. 保存BitMap,File到本地
  2. Android学习——在Android中使用OpenCV的第一个程序
  3. android : update.zip包的制作
  4. android studio多渠道号,多包名打包
  5. Android(安卓)以流的方式读取服务器图片文件
  6. Android动态壁纸开发
  7. android文件操作的实例
  8. 设置可见和隐藏
  9. Android(安卓)Interface Definition Language (AIDL)

随机推荐

  1. android 常用方法集合
  2. Android(安卓)Animation Frame动画
  3. Android(安卓)点击按钮,文字改变颜色
  4. 26、Android之Handler异步消息处理机制
  5. Android横竖屏幕切换生命周期详解
  6. Android简单自定义标题栏
  7. Android:链接到你的产品(Linking to Your
  8. Android(安卓)的常用控件(下拉,日期,时间,单
  9. android 读取网络 xml 数据
  10. Android积木之LayoutParams使用