Tag: android gradle

Gradle在干净的版本上显示错误消息,没有明确的解释

应用程序生成并运行成功,但在干净的生成(而不是增量)gradle显示错误消息,没有进一步的解释。 Android Studio版本 – 2.3.3 Gradle版本 – 2.3.3 复古的Lambda – 3.6.1 屏幕截图如下: 项目Gradle文件 buildscript { ext.kotlin_version = '1.1.3' ext.anko_version = '0.10.1' repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' classpath 'me.tatarka:gradle-retrolambda:3.6.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir } 应用程序Gradle文件 apply plugin: 'com.android.application' apply plugin: […]

无法与Android Studio 2.3和Gradle构建项目

我已经克隆了项目https://github.com/mpcjanssen/simpletask-android.git,但是当我尝试在Android Studio 2.3(最近更新)上打开它,它只是不会建立该项目。 我会尝试在步骤eaplain: 1)从硬盘中删除文件夹“…. / simpletask-android”中的所有内容。 2)启动Android Studio,并从Github中选择新项目 3)从Github下载源代码后,Android Studio向我显示了以下屏幕,并采用了“Next-Next-Finish”行为,而不进行任何更改。 4)接下来,AS根据项目根文件夹中的settings.gradle开始构建项目。 图片上有一个小对话框显示了这一点。 5)突然要求我选择一个gradle项目数据导入(?!)如图所示 6)接下来的消息我得到了这在下面的图片。 项目“simpletask-android”不是一个基于Gradle的项目 7)接下来的一点是碎石,告诉我 “错误:配置项目出现问题”:app'。“ 和 “22:22 Gradle同步失败:配置项目'app'时出现问题。请查阅IDE日志获取更多详细信息(帮助|显示日志)” 我试图更新Kotlin的版本,因为它在事件日志中说,但没有发生任何事情… 我也试图检查日志,因为它说,这就是我所拥有的: 2017-03-21 22:22:54,418 [1045087] WARN – nal.AbstractExternalSystemTask – 配置项目'app'时发生问题。 com.intellij.openapi.externalSystem.model.ExternalSystemException:配置项目':app'时发生问题。 … 引起:org.gradle.api.ProjectConfigurationException:配置项目“:app”时发生问题。 … 引起:kotlin.KotlinNullPointerException … 64更多 2017-03-21 22:22:54,423 [1045092] WARN – ect.sync.idea.ProjectSetUpTask – 2017-03-21 22:22:54,423 [1045092] INFO – ect.sync.idea.ProjectSetUpTask – 配置项目':app'时发生问题。 我该如何解决这个问题? 更新:我卸载AS […]

Android测试失败时,Gradle构建失败,“字符串索引超出范围”

尝试使用Android进行仪器测试时遇到问题。 当其中一个测试失败时,构建失败,但没有声明测试失败。 相反,我得到FAILURE: Build failed with an exception. 对于出错的部分,我得到的String index out of range: -1 。 在我真正的应用程序,这是导致它不生成一个HTML报告,并且XML报告零星生成。 我已经把一个简单的测试用例放在一起,但它正在生成报告,但是另外给出了相同的失败消息。 为了澄清, 测试旨在失败,但我期望一个A test has failed消息,而不是看起来像一个不同的失败原因。 我怀疑这个失败正在导致构建生命周期中的其他事情导致我所看到的信息出错。 这是非常简单的测试应用程序 的build.gradle buildscript { repositories { jcenter() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:2.4.0-alpha7' } } apply plugin: 'com.android.application' repositories { jcenter() mavenCentral() } dependencies { androidTestCompile "com.android.support.test.espresso:espresso-core:2.2.2" androidTestCompile "com.android.support.test.espresso:espresso-intents:2.2.2" androidTestCompile "com.android.support.test:runner:0.5" } […]

重复的zip文件))

这个问题与我在这里开始的其他人有很大关系: 将multidex添加到我的应用程序后,由于“java.lang.NoClassDefFoundError”,检测仪运行失败 无法合并dex – 如何排除适当的jar? 我添加了multidex支持,然后还添加了测试的支持。 我还添加了我的包装选项的例外,但它不工作,因为我认为。 这是我的build.gradle现在: apply plugin: 'com.android.library' apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' android { compileSdkVersion 26 buildToolsVersion "26.0.2" packagingOptions { exclude 'protobuf.meta' exclude 'android/support/test/filters/RequiresDevice.class' } testOptions { unitTests { includeAndroidResources = true } } sourceSets { test.java.srcDirs += ['build/generated/source/apt/test/debug'] } defaultConfig { multiDexEnabled true minSdkVersion 15 targetSdkVersion 26 versionCode 1 […]

UnsupportedOperationException“android”命令不再包含在SDK中

我在Kotlin有项目,我已经更新Android Studio到2.3.3和gradle到3.3,并建立工具到25.3.1。 在建设期间,我得到这个错误: Caused by: java.lang.UnsupportedOperationException: The "android" command is no longer included in the SDK. Any references to it (eg by third-party plugins) should be removed. at com.android.SdkConstants.androidCmdName(SdkConstants.java:1947) at com.android.SdkConstants$androidCmdName$0.callStatic(Unknown Source) at com.jakewharton.sdkmanager.internal.AndroidCommand$Real.<init>(AndroidCommand.groovy:21) at com.jakewharton.sdkmanager.internal.PackageResolver.resolve(PackageResolver.groovy:22) at com.jakewharton.sdkmanager.internal.PackageResolver$resolve.call(Unknown Source) at com.jakewharton.sdkmanager.SdkManagerPlugin$_apply_closure2$_closure3.doCall(SdkManagerPlugin.groovy:44) at com.jakewharton.sdkmanager.SdkManagerPlugin$_apply_closure2$_closure3.doCall(SdkManagerPlugin.groovy) at com.jakewharton.sdkmanager.SdkManagerPlugin.time(SdkManagerPlugin.groovy:51) at com.jakewharton.sdkmanager.SdkManagerPlugin$_apply_closure2.doCall(SdkManagerPlugin.groovy:43) at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:40) at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:25) at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:44) at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:79) […]

'com.android.tools.build:gradle:3.0.0-alpha3'和'com.android.tools.build:gradle:3.0.0-alpha1'有什么区别?

我正在尝试更新最新的gradle android插件。 我最初尝试了“3.0.0-alpha1”,现在我正在使用“3.0.0-alpha3”。 用'3.0.0-alpha1'版本,我得到一个错误“未找到”,之后,我切换到“3.0.0-alpha3”,与我得到下面的错误。 错误: – 不再支持“getMainOutputFile”。 如果您需要确定输出的文件名,请使用getOutputFileName。 我也修正了这个错误。 但是,我只是想“3.0.0-alpha1”和“3.0.0-alpha3”之间的区别是什么,在此先感谢。

如何根据自定义规则验证源代码? (代码中没有“DANGER”字符串)

在编写调试语句时,我总是添加// DANGER注释,我知道我必须在构建Android应用程序的下一个版本之前将其删除。 因此,在构建每个版本之前,我手动执行CTRL + SHIFT + F搜索"DANGER" ,并确保没有调试语句仍然存在。 我可能会忘记这一点,所以我想自动化这最后一部分:发布版本应该简单地失败(最好是立即),如果代码包含"DANGER" 。 什么是最简单的方法来实现呢? 自定义的皮棉规则? 自定义gradle任务?

Realm插件导致“app:compileInstantrunco​​nfigDebugKotlin”任务失败

我有一个使用realm db gradle插件的项目。 在我加入后,我开始得到instantCompile错误。 我关闭了Android Studio的即时运行,但没有骰子。 Ran ./gradlew clean && ./gradlew assembleDebug –stacktrace ,这是输出。 * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:compileInstantrunconfigDebugKotlin'. 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:66) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52) 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.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54) at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40) Caused by: […]

compileReleaseKotlin失败,java.lang.ClassNotFoundException:com.sun.tools.javac.util.Context

我试图通过终端使用gradlew构建我的Android项目(其中包含一个库模块)。 从Android Studio中,它编译和安装成功,但是,当我尝试运行./gradlew assembleDebug我得到以下stacktrace: Using kotlin incremental compilation e: java.lang.ClassNotFoundException: com.sun.tools.javac.util.Context at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at org.jetbrains.kotlin.gradle.tasks.JarSearchingUtilKt.findToolsJar(jarSearchingUtil.kt:48) at org.jetbrains.kotlin.compilerRunner.GradleCompilerEnvironment$toolsJar$2.invoke(GradleCompilerEnvironment.kt:21) at org.jetbrains.kotlin.compilerRunner.GradleCompilerEnvironment$toolsJar$2.invoke(GradleCompilerEnvironment.kt:15) at kotlin.SynchronizedLazyImpl.getValue(Lazy.kt:131) at org.jetbrains.kotlin.compilerRunner.GradleCompilerEnvironment.getToolsJar(GradleCompilerEnvironment.kt) at org.jetbrains.kotlin.compilerRunner.GradleCompilerEnvironment.getCompilerClasspath(GradleCompilerEnvironment.kt:24) at org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner.getDaemonConnection(GradleKotlinCompilerRunner.kt:289) at org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner.compileWithDaemon(GradleKotlinCompilerRunner.kt:132) at org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner.compileWithDaemonOrFallback(GradleKotlinCompilerRunner.kt:112) at org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner.compileWithDaemonOrFallback(GradleKotlinCompilerRunner.kt:49) at org.jetbrains.kotlin.compilerRunner.KotlinCompilerRunner.runCompiler(KotlinCompilerRunner.kt:134) at org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner.runJvmCompiler(GradleKotlinCompilerRunner.kt:73) at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.callCompiler$kotlin_gradle_plugin(Tasks.kt:259) at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.callCompiler$kotlin_gradle_plugin(Tasks.kt:160) at org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile.execute(Tasks.kt:141) at sun.reflect.GeneratedMethodAccessor530.invoke(Unknown Source) […]

项目结构上的Android Studio中的StackOverflowError:null

自从我更新到Android Studio 2.3以来,在某些情况下会出现IDE错误:例如,当我单击File->Project Structure ,尝试打开任何布局XML,甚至单击任何build.gradle文件的代码中的任意build.gradle (这些至少开放无例外)。 该错误说StackOverflowError: null ,堆栈跟踪在所有情况下是相同的: null java.lang.StackOverflowError at java.util.regex.Pattern.sequence(Pattern.java:2079) at java.util.regex.Pattern.expr(Pattern.java:1996) at java.util.regex.Pattern.compile(Pattern.java:1696) at java.util.regex.Pattern.<init>(Pattern.java:1351) at java.util.regex.Pattern.compile(Pattern.java:1028) at java.lang.String.replaceAll(String.java:2223) at com.android.tools.idea.gradle.dsl.parser.settings.ProjectPropertiesDslElement.getStandardProjectKey(ProjectPropertiesDslElement.java:52) at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslExpression.resolveProjectReference(GradleDslExpression.java:191) at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslExpression.resolveReference(GradleDslExpression.java:92) at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslReference.getValue(GradleDslReference.java:66) at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslExpression.resolveReference(GradleDslExpression.java:152) at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslReference.getValue(GradleDslReference.java:66) at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslExpression.resolveReference(GradleDslExpression.java:152) …和最后2行永远重复。 我能做些什么来找到这个问题的根源? 看起来在我的构建配置中有一个循环引用,或Studio的内部? 但是我找不到任何人。 如果我至少知道堆栈跟踪中提到的模式或参考是有帮助的。 我已经尝试过的事情: 无效的缓存和重新启动 删除项目目录中的.idea/和其他临时文件夹 检查项目到一个新的位置 在settings->build->gradle->experimental启用“新建项目结构对话框” – 然后对话框工作,但是关闭它仍然会出现同样的错误,其他情况下仍然不起作用 我使用的Android Studio 2.3.3所有的插件和Android库更新,gradle 3.3和gradle插件2.3.1; 所有在最新的gentoo linux上。