Tag: gradle

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

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

Gradle中的实现和编译有什么区别?

更新到android studio 3.0并创建一个新的项目后,我注意到,在build.gradle有一个新的方法来添加新的依赖关系,而不是compile有implementation 而不是testCompile有testImplementation 例如: implementation 'com.android.support:appcompat-v7:25.0.0' testImplementation 'junit:junit:4.12' 代替 compile 'com.android.support:appcompat-v7:25.0.0' testCompile 'junit:junit:4.12' 他们之间有什么区别,我应该使用什么。

不能'buildscript部分中获得一个变量

我在build.gradle.kts文件中有一个变量: val foo by project 并且不能在buildscript {}部分获取这个变量。 总是得到一个错误:未解决的参考:foo 有人知道如何解决它? 谢谢

在IntelliJ中找到文件,但不是在建立的jar

我通过编译器运行一些代码,我必须查询用户正在使用哪个操作系统来调用相应的二进制文件。 代码工作,并在IntelliJ中调用二进制文件,但是当我用gradle生成一个jar文件时,我得到一个文件找不到异常(二进制)对应于val tempBinaryCopy的行。 fun assemble(file: String) { val currentDirectory = System.getProperty("user.dir") val binary = when { System.getProperty("os.name").startsWith("Linux") -> javaClass.classLoader.getResource("osx_linux").file System.getProperty("os.name").startsWith("Mac") -> javaClass.classLoader.getResource("osx_mac").file else ->javaClass.classLoader.getResource("osx_win.exe").file } val binaryFile = File(binary).name val assemblyFile = File(file).name val tempBinaryCopy = File(binary).copyTo(File(currentDirectory, binaryFile), true) val tempAssemblyCopy = File(file).copyTo(File(currentDirectory, assemblyFile), true) tempAssemblyCopy.deleteOnExit() tempBinaryCopy.deleteOnExit() Files.setPosixFilePermissions(tempBinaryCopy.toPath(), setOf(PosixFilePermission.OWNER_EXECUTE)) val process = Runtime.getRuntime().exec(arrayOf(tempBinaryCopy.absolutePath, tempAssemblyCopy.absolutePath, "-v")) […]

从gradle创建maven包装器pom.xml:不能创建<build>元素

我如何设置sourceDirectory , testSourceDirectory并在我使用gradle maven-plugin的pom DSL创建的pom.xml中构建plugins ? 当我添加没有Closure到我的DSL部分的build ,没关系..但是当我添加build { /* anything else, like actual compile plugins */}它给了我这个错误: Execution failed for task ':mavenWrapper'. > No such property: _SCRIPT_CLASS_NAME_ for class: org.apache.maven.model.Model 我猜Gradle将build视为任务,而不是由org.sonatype.maven.polyglot.groovy.builder.ModelBuilder生成的DSL谓词。 有没有办法强制build被视为DSL的一部分? 它可以被施放什么? 现在我正在通过使用.withXml解决这个问题,但是它非常冗长,而且维护起来也很少。 这里是我工作的缩写版本: task mavenWrapper { doLast { delete 'pom.xml', 'mvnw', 'mvnw.cmd' pom { project { packaging 'pom' repositories { repository { id […]

运行时NoClassDefFoundError

在使用gradle build项目之后,我在运行时收到错误“NoClassDefFoundError”。 该程序确实开始,一切似乎一直工作,直到它应该读取一些PDF文件,然后我收到一个没有发现异常的类。 当我在intellij中调试我的应用程序时,一切正常。 当我解压缩jar文件时,我发现没有包含PDFFile.class 。 当我在Linux上构建相同的项目时奇怪,我没有这个问题。 java.lang.NoClassDefFoundError: PDFFile at PDFViewModel$loadPdfList$1.invoke(GUI.kt:107) at PDFViewModel$loadPdfList$1.invoke(GUI.kt:87) at tornadofx.FXTask.call(Lib.kt:219) at javafx.concurrent.Task$TaskCallable.call(Task.java:1423) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.ClassNotFoundException: PDFFile at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) … 6 more 我确实已经定义了PDFFile。 data class PDFFile(val path: String, val name: String, var pages: Int?, var progress: Int?) class PDFViewModel : ItemViewModel<PDFFile>() […]

Android Studio“没有发现测试”

有没有人能够得到测试运行在Android Studio(从GUI而不是终端),我一直无法从GUI运行测试。 每次尝试通过GUI运行测试时,我都会收到以下消息: 我能够使用以下命令从终端运行测试: ./gradlew connectedAndroidTest 我在Mac OSX上运行Android Studio 0.5.2,使用Gradle 1.11和Plugin 0.9.0 我的项目结构如下; MyProject/ src/ androidTest/ java/ com.myproject.app.test/ … (tests source code) … main/ java/ com.myproject.app/ … (source code) … res/ … (resources code) … build.gradle 我的build.gradle文件看起来类似于以下内容: … android { compileSdkVersion 19 buildToolsVersion "19.0.1" defaultConfig { versionCode 12 versionName "2.0" minSdkVersion 9 targetSdkVersion 19 testPackageName […]

Android:仪器运行失败,由于“java.lang.ClassNotFoundException”:未找到测试

我尝试通过“gradlew connectedAndroidTest”运行一个仪器测试。 我得到以下错误: Tests on GT-I9305 – 4.3 failed: Instrumentation run failed due to 'java.lang.ClassNotFoundException' com.android.builder.testing.ConnectedDevice > hasTests[GT-I9305 – 4.3] FAILED No tests found. :mobile:connectedAndroidTest FAILED 这是带有–stacktrace选项的输出: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':mobile:connectedAndroidTest'. 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:305) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79) […]

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崩溃

该应用程序正常工作时,我作为一个调试版本导出,没有任何错误,但它在启动时崩溃时,我将其导出为发行版本。 我附加了Android监视器的错误 10-24 03:02:02.286 17303-17303/? E/CustomizationReader: appName = Prism 10-24 03:02:02.287 17303-17303/? E/CustomizationReader: key = sku_id 10-24 03:02:02.287 17303-17303/? E/CustomizationReader: Result = 33 10-24 03:02:02.531 24402-24402/? E/dalvikvm: Could not find class 'kotlin.jvm.internal.PropertyReference1Impl', referenced from method com.earnso.mangaworld.util.RarContentProvider.<clinit> 10-24 03:02:02.549 24402-24402/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.earnso.mangaworld, PID: 24402 java.lang.NoClassDefFoundError: kotlin.jvm.internal.PropertyReference1Impl at com.earnso.mangaworld.util.RarContentProvider.<clinit>(RarContentProvider.kt) at java.lang.Class.newInstanceImpl(Native Method) at […]