我正在尝试使用命令行工具创建和构建一个android项目(在win7上)。
到目前为止,我成功创建了一个应用程序,并通过命令行使用gradle构建它。但我需要在我的应用程序中使用名为objectbox的外部库。使用它的类后,我得到gradle错误,不知道如何解决它。我使用以下命令从gradle获得调试级别消息:
gradlew assemble --debug
似乎问题的相关部分从这开始:
01:15:27.177 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleVersionRepository]检测到不存在工件'com.squareup.okio:okio:1.11.0:okio.jar '在解析器缓存中
我从健康的条目中找到了解析器缓存模板,如下所示:
01:15:27.177 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleVersionRepository]找到工件'com.google.code.findbugs:jsr305:3.0.2:jsr305.jar'in解析器缓存: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:\用户\ User.gradle \缓存\模块-2 \文件-2.1 \ com.squareup.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'
答案 0 :(得分:0)
最终我克服了这个问题。
首先我创建了一个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文件夹,因为我收到一个关于库名冲突的错误,所以我猜它是原因,似乎没有必要我放在那里的objectbox jar(我有预先建造它们。)
另一件事:我将 runProguard false 更改为 minifyEnabled false (请参阅: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)