2016-10-14 19 views
1

グラベルのバージョンを修正する方法については、多くの良い提案がありますが、古くなったり、提案されたパスが見つからないものがあります。 1つの解決策は私のために働いたプロジェクト>プロジェクトの構造>プロジェクト> gradleバージョンです。なぜタスクラッパー機能が動作しないのですか

サポートされているバージョンに変更して、プロジェクトを正常にビルドできます。

JavaScriptコードに小さなエラーがあり、変更されています。 Ionic build android、ここで間違ったものが発生しました。 Minimum supprted Gradle version is 2.14.1. Current version is 2.13.

しかしプロジェクト/プラットフォーム/アンドロイド/ build.gradle

task wrapper(type: Wrapper){ gradleVersion = '2.14.1' }

と、このlinkからで、これは仕方があなたのGradleラッパーを設定していることを示唆しています。

だから私はプロジェクト/プラットフォーム/アンドロイドに期待しています/のGradle /ラッパー/ gradle-wrapper.propertiesdistributionUrl=http\://services.gradle.org/distributions/gradle-2.14.1-all.zipを持っている代わりに、これはdistributionUrl=http\://services.gradle.org/distributions/gradle-2.13-all.zipを持っているものです。それぞれが構築した後、それはgradle-2.13-all.zipに戻すになるので

は、このファイル プロジェクト/プラットフォーム/アンドロイド/ Gradleの/ラッパー/ gradle-wrapper.propertiesに直接変更を加えることはできません。

ここでは何が起こっていますか? distributionUrl=http\://services.gradle.org/distributions/gradle-2.13-all.zipを変更する理由を説明するものは見つかりません。誰も親切にこれを説明してくれますか?多分私が逃した、非常にばかげた何か。ありがとうございました。私は

"Gradle Version 2.10 is required." Error

How to update gradle in android studio

ionic build android error when download gradle

Gradleのコードを見てきました

リンク

apply plugin: 'com.android.application' 

buildscript { 
    repositories { 
     mavenCentral() 
     jcenter() 
    } 

    // Switch the Android Gradle plugin version requirement depending on the 
    // installed version of Gradle. This dependency is documented at 
    // http://tools.android.com/tech-docs/new-build-system/version-compatibility 
    // and https://issues.apache.org/jira/browse/CB-8143 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.2.1' 
    } 
} 

// Allow plugins to declare Maven dependencies via build-extras.gradle. 
allprojects { 
    repositories { 
     mavenCentral(); 
     jcenter(); 
    } 
} 

task wrapper(type: Wrapper) { 
    gradleVersion = '2.14.1' 
} 

// Configuration properties. Set these via environment variables, build-extras.gradle, or gradle.properties. 
// Refer to: http://www.gradle.org/docs/current/userguide/tutorial_this_and_that.html 
ext { 
    apply from: 'CordovaLib/cordova.gradle' 
    // The value for android.compileSdkVersion. 
    if (!project.hasProperty('cdvCompileSdkVersion')) { 
     cdvCompileSdkVersion = null; 
    } 
    // The value for android.buildToolsVersion. 
    if (!project.hasProperty('cdvBuildToolsVersion')) { 
     cdvBuildToolsVersion = null; 
    } 
    // Sets the versionCode to the given value. 
    if (!project.hasProperty('cdvVersionCode')) { 
     cdvVersionCode = null 
    } 
    // Sets the minSdkVersion to the given value. 
    if (!project.hasProperty('cdvMinSdkVersion')) { 
     cdvMinSdkVersion = null 
    } 
    // Whether to build architecture-specific APKs. 
    if (!project.hasProperty('cdvBuildMultipleApks')) { 
     cdvBuildMultipleApks = null 
    } 
    // .properties files to use for release signing. 
    if (!project.hasProperty('cdvReleaseSigningPropertiesFile')) { 
     cdvReleaseSigningPropertiesFile = null 
    } 
    // .properties files to use for debug signing. 
    if (!project.hasProperty('cdvDebugSigningPropertiesFile')) { 
     cdvDebugSigningPropertiesFile = null 
    } 
    // Set by build.js script. 
    if (!project.hasProperty('cdvBuildArch')) { 
     cdvBuildArch = null 
    } 

    // Plugin gradle extensions can append to this to have code run at the end. 
    cdvPluginPostBuildExtras = [] 
} 

// PLUGIN GRADLE EXTENSIONS START 
apply from: "cordova-plugin-badge/simplelogin777664-badge.gradle" 
// PLUGIN GRADLE EXTENSIONS END 

def hasBuildExtras = file('build-extras.gradle').exists() 
if (hasBuildExtras) { 
    apply from: 'build-extras.gradle' 
} 

// Set property defaults after extension .gradle files. 
if (ext.cdvCompileSdkVersion == null) { 
    ext.cdvCompileSdkVersion = privateHelpers.getProjectTarget() 
} 
if (ext.cdvBuildToolsVersion == null) { 
    ext.cdvBuildToolsVersion = privateHelpers.findLatestInstalledBuildTools() 
} 
if (ext.cdvDebugSigningPropertiesFile == null && file('debug-signing.properties').exists()) { 
    ext.cdvDebugSigningPropertiesFile = 'debug-signing.properties' 
} 
if (ext.cdvReleaseSigningPropertiesFile == null && file('release-signing.properties').exists()) { 
    ext.cdvReleaseSigningPropertiesFile = 'release-signing.properties' 
} 

// Cast to appropriate types. 
ext.cdvBuildMultipleApks = cdvBuildMultipleApks == null ? false : cdvBuildMultipleApks.toBoolean(); 
ext.cdvMinSdkVersion = cdvMinSdkVersion == null ? null : Integer.parseInt('' + cdvMinSdkVersion) 
ext.cdvVersionCode = cdvVersionCode == null ? null : Integer.parseInt('' + cdvVersionCode) 

def computeBuildTargetName(debugBuild) { 
    def ret = 'assemble' 
    if (cdvBuildMultipleApks && cdvBuildArch) { 
     def arch = cdvBuildArch == 'arm' ? 'armv7' : cdvBuildArch 
     ret += '' + arch.toUpperCase().charAt(0) + arch.substring(1); 
    } 
    return ret + (debugBuild ? 'Debug' : 'Release') 
} 

// Make cdvBuild a task that depends on the debug/arch-sepecific task. 
task cdvBuildDebug 
cdvBuildDebug.dependsOn { 
    return computeBuildTargetName(true) 
} 

task cdvBuildRelease 
cdvBuildRelease.dependsOn { 
    return computeBuildTargetName(false) 
} 

task cdvPrintProps << { 
    println('cdvCompileSdkVersion=' + cdvCompileSdkVersion) 
    println('cdvBuildToolsVersion=' + cdvBuildToolsVersion) 
    println('cdvVersionCode=' + cdvVersionCode) 
    println('cdvMinSdkVersion=' + cdvMinSdkVersion) 
    println('cdvBuildMultipleApks=' + cdvBuildMultipleApks) 
    println('cdvReleaseSigningPropertiesFile=' + cdvReleaseSigningPropertiesFile) 
    println('cdvDebugSigningPropertiesFile=' + cdvDebugSigningPropertiesFile) 
    println('cdvBuildArch=' + cdvBuildArch) 
    println('computedVersionCode=' + android.defaultConfig.versionCode) 
    android.productFlavors.each { flavor -> 
     println('computed' + flavor.name.capitalize() + 'VersionCode=' + flavor.versionCode) 
    } 
} 

android { 
    sourceSets { 
    main { 
     manifest.srcFile 'AndroidManifest.xml' 
     java.srcDirs = ['src'] 
     resources.srcDirs = ['src'] 
     aidl.srcDirs = ['src'] 
     renderscript.srcDirs = ['src'] 
     res.srcDirs = ['res'] 
     assets.srcDirs = ['assets'] 
     jniLibs.srcDirs = ['libs'] 
    } 
    } 
    defaultConfig { 
    if (cdvMinSdkVersion != null) { 
     minSdkVersion cdvMinSdkVersion 
    } 
    minSdkVersion 16 
    targetSdkVersion 23 
    } 
    lintOptions { 
    abortOnError false; 
    } 
    compileSdkVersion 23 
    buildToolsVersion '21.1.2' 
    if (Boolean.valueOf(cdvBuildMultipleApks)) { 
    productFlavors { 
     armv7 { 
     versionCode defaultConfig.versionCode * 10 + 2 
     ndk { 
      abiFilters "armeabi-v7a", "" 
     } 
     } 
     x86 { 
     versionCode defaultConfig.versionCode * 10 + 4 
     ndk { 
      abiFilters "x86", "" 
     } 
     } 
     all { 
     ndk { 
      abiFilters "all", "" 
     } 
     } 
    } 
    } 
    /* 

    ELSE NOTHING! DON'T MESS WITH THE VERSION CODE IF YOU DON'T HAVE TO! 

    else if (!cdvVersionCode) { 
    def minSdkVersion = cdvMinSdkVersion ?: privateHelpers.extractIntFromManifest("minSdkVersion") 
    // Vary versionCode by the two most common API levels: 
    // 14 is ICS, which is the lowest API level for many apps. 
    // 20 is Lollipop, which is the lowest API level for the updatable system webview. 
    if (minSdkVersion >= 20) { 
     defaultConfig.versionCode += 9 
    } else if (minSdkVersion >= 14) { 
     defaultConfig.versionCode += 8 
    } 
    } 
    */ 
    compileOptions { 
    sourceCompatibility JavaVersion.VERSION_1_7 
    targetCompatibility JavaVersion.VERSION_1_7 
    } 
    if (cdvReleaseSigningPropertiesFile) { 
    signingConfigs { 
     release { 
     // These must be set or Gradle will complain (even if they are overridden). 
     keyAlias = "" 
     keyPassword = "__unset" 
     // And these must be set to non-empty in order to have the signing step added to the task graph. 
     storeFile = null 
     storePassword = "__unset" 
     } 
    } 
    buildTypes { 
     release { 
     signingConfig signingConfigs.release 
     } 
    } 
    addSigningProps(cdvReleaseSigningPropertiesFile, signingConfigs.release) 
    } 
    if (cdvDebugSigningPropertiesFile) { 
    addSigningProps(cdvDebugSigningPropertiesFile, signingConfigs.debug) 
    } 
    productFlavors { 
    } 
} 

dependencies { 
    compile fileTree(include: '*.jar', dir: 'libs') 
    // SUB-PROJECT DEPENDENCIES START 
    debugCompile project(path: "CordovaLib", configuration: "debug") 
    releaseCompile project(path: "CordovaLib", configuration: "release") 
    compile "com.android.support:support-v4:+" 
    // SUB-PROJECT DEPENDENCIES END 
} 

def promptForReleaseKeyPassword() { 
    if (!cdvReleaseSigningPropertiesFile) { 
     return; 
    } 
    if ('__unset'.equals(android.signingConfigs.release.storePassword)) { 
     android.signingConfigs.release.storePassword = privateHelpers.promptForPassword('Enter key store password: ') 
    } 
    if ('__unset'.equals(android.signingConfigs.release.keyPassword)) { 
     android.signingConfigs.release.keyPassword = privateHelpers.promptForPassword('Enter key password: '); 
    } 
} 

gradle.taskGraph.whenReady { taskGraph -> 
    taskGraph.getAllTasks().each() { task -> 
     if (task.name == 'validateReleaseSigning') { 
      promptForReleaseKeyPassword() 
     } 
    } 
} 

def addSigningProps(propsFilePath, signingConfig) { 
    def propsFile = file(propsFilePath) 
    def props = new Properties() 
    propsFile.withReader { reader -> 
     props.load(reader) 
    } 

    def storeFile = new File(props.get('key.store') ?: privateHelpers.ensureValueExists(propsFilePath, props, 'storeFile')) 
    if (!storeFile.isAbsolute()) { 
     storeFile = RelativePath.parse(true, storeFile.toString()).getFile(propsFile.getParentFile()) 
    } 
    if (!storeFile.exists()) { 
     throw new FileNotFoundException('Keystore file does not exist: ' + storeFile.getAbsolutePath()) 
    } 
    signingConfig.keyAlias = props.get('key.alias') ?: privateHelpers.ensureValueExists(propsFilePath, props, 'keyAlias') 
    signingConfig.keyPassword = props.get('keyPassword', props.get('key.alias.password', signingConfig.keyPassword)) 
    signingConfig.storeFile = storeFile 
    signingConfig.storePassword = props.get('storePassword', props.get('key.store.password', signingConfig.storePassword)) 
    def storeType = props.get('storeType', props.get('key.store.type', '')) 
    if (!storeType) { 
     def filename = storeFile.getName().toLowerCase(); 
     if (filename.endsWith('.p12') || filename.endsWith('.pfx')) { 
      storeType = 'pkcs12' 
     } else { 
      storeType = signingConfig.storeType // "jks" 
     } 
    } 
    signingConfig.storeType = storeType 
} 

for (def func : cdvPluginPostBuildExtras) { 
    func() 
} 

// This can be defined within build-extras.gradle as: 
//  ext.postBuildExtras = { ... code here ... } 
if (hasProperty('postBuildExtras')) { 
    postBuildExtras() 
} 

更新

「特定のラッパーがMavenの下に存在しないためgradlewラッパーは、エラーをスローし、サブbuild.gradle2.14.1.prom2.14.1.jarをダウンロードするためにそれを使用しています。 This link will explain it.

見つかり問題

は、それが2.13-all.zipに戻って変更し続けている理由の問題は、このためラインの[project name]/platforms/android/cordova/lib/builders/GradleBuilder.js代わりの~/android/lib/GradleBuilder.jsvar distributionUrl = process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || 'http\\://services.gradle.org/distributions/gradle-2.13-all.zip';です。 (行164)

+0

は何も影響しませんが、あなたはこのterser構文行うことができますのでご注意:{ は gradleVersion =「2.14.1」} ' – weston

+0

おかげ@weston、何とかそれはまだ私与え'ラッパーを同じエラー –

+1

ええ、私は「何にも影響しません」と言っていました。 – weston

答えて

0

問題をやった後2.14.1を言うべきで、このためラインの[project name]/platforms/android/cordova/lib/builders/GradleBuilder.js代わりの~/android/lib/GradleBuilder.jsvar distributionUrl = process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || 'http\\://services.gradle.org/distributions/gradle-2.13-all.zip';です。 (ライン164)

2

gradleがgradle-wrapper.propertiesのようなファイルを更新する理由が完全にわかりません。しかし、wrapperタスクの仕組みは、変更を加えるために呼び出す必要があることを意味します。したがって、次のコマンドを試してみてください。project/platforms/android/

  • ./gradlew wrapper - gradlewがすでにどこかのマシンにキャッシュされていない場合、それは新しいバージョンをダウンロードするラッパーを使用していますので、これは、指定されたバージョン
  • ./gradlew --versionにラッパーを更新します。上部には、それはそれは2.13-all.zipに戻って変更し続けている理由は、この
+0

こんにちは@kiskae、ちょうど私があなたの提案を正しく理解しているかどうかを確認したい。私は 'project/platforms/android /'でコマンドプロンプトを使い、このコマンドを使用しました。 'gradlew --version'を使用した場合は' Gradle 2.13'を返し、 'gradlew'を使用すると最小バージョンエラーで失敗しました。コマンドプロンプトで '。/'を使うことはできません。 –

+0

'。/ gradlew'を使用できないのはなぜですか?もしあなたがしたらどうなりますか? – weston

+0

申し訳ありませんが動作しません。これを使うつもりなら、これは私が得るメッセージです。内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されません。 –

関連する問題