android - gradle失败-命令行

标签 android windows gradle command-line android-gradle-plugin

我正在尝试仅使用命令行工具(在win7上)创建和构建android项目。

到目前为止,我已经成功创建了一个应用程序,并通过命令行使用gradle进行了构建。但是我需要在我的应用程序中使用一个名为objectbox的外部库。使用其类后,我得到gradle错误,不知道如何解决它。我使用以下命令从gradle获取了调试级别消息:

gradlew assemble --debug

似乎问题所在的相关部分由此开始:

01:15:27.177 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleVersionRepository]在解析器中检测到 Artifact 'com.squareup.okio:okio:1.11.0:okio.jar'不存在快取

我从一个健康的条目中找到了解析器缓存的模板,如下所示:

01:15:27.177 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleVersionRepository]在解析器缓存中找到 Artifact 'com.google.code.findbugs:jsr305:3.0.2:jsr305.jar': C:\ Users \ User.gradle \ caches \ modules-2 \ files-2.1 \ com.google.code.findbugs \ jsr305 \ 3.0.2 \ 25ea2e8b0c338a877313bd4672d3fe056ea78f0d \ jsr305-3.0.2.jar

并在以下路径中找到okio-1.11.0.jar:

C:\ Users \ User.gradle \ caches \ modules-2 \ files-2.1 \ com.squareup.okio \ okio \ 1.11.0 \ 840897fcd7223a8143f1d9b6f69714e7be34fd50

再加上其他一些相关的目录和文件。

我做了一些更改和测试,但没有成功。
请帮助我找到可能的原因并解决最后一个问题。

这是我的build.gradle的内容:
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.11.+'
    }
}
apply plugin: 'android'

android {
    compileSdkVersion 'android-16'
    buildToolsVersion '26.0.1'

    buildTypes {
        release {
            runProguard false
            proguardFile getDefaultProguardFile('proguard-android.txt')
        }
    }
}

//=======================================================

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

buildscript {
    ext.objectboxVersion = '1.0.1' // check for latest version
    repositories {
        jcenter()
        maven { url "http://objectbox.net/beta-repo/" }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        classpath "io.objectbox:objectbox-gradle-plugin:$objectboxVersion"
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url "http://objectbox.net/beta-repo/" }
    }
}

//==============

apply plugin: 'com.android.application'
apply plugin: 'io.objectbox'

最佳答案

似乎终于我克服了这个问题。

首先,我在一个空文件夹中执行以下命令创建了一个Android gradle项目:

android create project --gradle --gradle-version 2.3.0 --activity Main --package me_at_gmail_dot_com.myprojectname --target 1 --path .

这是我的工作build.gradle文件:
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.0'
    }
}
apply plugin: 'android'

android {
    compileSdkVersion 'android-16'
    buildToolsVersion '26.0.1'

    buildTypes {
        release {
            minifyEnabled false
            proguardFile getDefaultProguardFile('proguard-android.txt')
        }
    }
}

/*dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}*/

//===============================================

buildscript {
    ext.objectboxVersion = '1.0.1' // check for latest version
    repositories {
        jcenter()
        maven { url "http://objectbox.net/beta-repo/" }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.0'
        classpath "io.objectbox:objectbox-gradle-plugin:$objectboxVersion"
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url "http://objectbox.net/beta-repo/" }
    }
}

//=============

apply plugin: 'com.android.application'
apply plugin: 'io.objectbox'

我使用了android gradle插件v2.3.0,因为它似乎是已定义存储库中可用的最高版本;在v2.3.3中,我遇到了一个模糊的错误,然后我去了仓库查看它是否确实存在。

您还看到我注释了我的libs文件夹,因为我遇到有关库名冲突的错误,所以我猜想这是原因,而且似乎不需要将我放在那里的对象箱(我已经事先构建了它们) )。

另一件事:我将 runProguard假更改为 minifyEnabled假(请参阅:https://stackoverflow.com/a/27387994/2982512)

这是我的gradle-wrapper.properties:
#Wed Apr 10 15:27:10 PDT 2013
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=http\://services.gradle.org/distributions/gradle-3.3-all.zip

我仅根据android gradle插件版本更改了最后一行(请参阅此:https://developer.android.com/studio/releases/gradle-plugin.html#updating-gradle)

关于android - gradle失败-命令行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46263187/

相关文章:

windows - 管道输出时如何在批处理文件中显示消息?

android - 通过 WiFi 将图像从 Android 发送/保存到 Windows 时数据过多

c# - 使用 vbscript 访问窗口的标题

java - JHipster 微服务作为单个项目

unit-testing - 跳过单个项目的所有测试

android - 如何修改来自 Android 应用程序的 HTTP 请求 header ?

android - 超薄库不支持带有多个 TextView 的标题

android - 是否有 ADB 命令可以更改已安装应用程序的高级设置?

c++ - 如何使用 Gradle MSBuild 插件运行 SonarQube Scanner?

带有客户端证书的android webview