【问题标题】:Gradle DSL method executable not found找不到 Gradle DSL 方法可执行文件
【发布时间】:2018-11-24 02:38:11
【问题描述】:

我用的是安卓工作室。

我想运行一个任务,用于 java jar 文件编译,所以想在 gradle 中将“可执行文件”作为“java”执行,但它说

未找到 Gradle DSL 方法:'executable()' 可能的原因:

  • 项目“logcatdemo”可能正在使用不包含该方法的 Android Gradle 插件版本(例如,在 1.1.0 中添加了“testCompile”)。 将插件升级到 3.1.3 版本并同步项目
  • 项目“logcatdemo”可能正在使用不包含该方法的 Gradle 版本。 打开 Gradle 包装文件
  • 构建文件可能缺少 Gradle 插件。 应用 Gradle 插件
  • 我的 build.gradle 模块是,

        // Top-level build file where you can add configuration options common to all sub-projects/modules.
        buildscript {
    
            repositories {
                google()
                jcenter()
                mavenCentral()
            }
            dependencies {
                classpath 'com.android.tools.build:gradle:3.1.3'
    
    
            }
        }
    
    
        allprojects {
            repositories {
                google()
                jcenter()
                mavenCentral()
            }
        }
        task run (overwrite:true){
             executable 'java'
        }
        task clean(type: Delete) {
            delete rootProject.buildDir
        }
    

    我的应用的构建等级是

    apply plugin: 'com.android.application'
            android {
    
                compileSdkVersion 27
                defaultConfig {
                    applicationId "com.xxx.yyy.logcatdemo"
                    minSdkVersion 21
                    targetSdkVersion 27
                    versionCode 1
                    versionName "1.0"
                    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
                    multiDexEnabled true
                }
                buildTypes {
                    release {
                        minifyEnabled false
                        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                    }
                }
            }
    
            dependencies {
    
                implementation fileTree(dir: 'libs', include: ['*.jar'])
                implementation 'com.android.support:support-v4:27.0.2'
                implementation 'com.android.support:appcompat-v7:27.0.2'
                implementation 'com.android.support:recyclerview-v7:27.0.2'
                implementation 'com.android.support.constraint:constraint-layout:1.1.1'
                testImplementation 'junit:junit:4.12'
                androidTestImplementation 'com.android.support.test:runner:1.0.2'
                androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    
            }
    
    
            build.finalizedBy("run")
    

    【问题讨论】:

      标签: android android-studio gradle build.gradle


      【解决方案1】:

      我找到了解决办法:

      在任务中添加一个参数,

      task run(type:JavaExec){
      
      }
      

      这清除了错误

      【讨论】:

      • 如何获取项目的路径名,是否有相应的功能以及如何获取Android工作室生成的类文件的路径名
      • File rootDataDir =getFilesDir(); Log.i("PROJECT", rootDataDir.toString());
      • 我需要在 gradle 脚本本身中得到它
      【解决方案2】:

      阅读JavaExec

      在子进程中执行 Java 应用程序。

      task runApp(type: JavaExec) {
      
      }
      

      【讨论】:

      • 我需要包含它,因为任务是在任务中执行 java,如果从安装了 gradle 的终端运行它可以正常工作,但不能在 android studio 中运行
      猜你喜欢
      • 2015-04-16
      • 1970-01-01
      • 2019-10-21
      • 2015-11-19
      • 2017-10-27
      • 2015-03-29
      • 2015-01-20
      • 2015-01-10
      • 2015-02-21
      相关资源
      最近更新 更多