我有一个hello world全屏android studio 1.5.1应用程序,我添加了gradle / eclipse-mars子项目。没有修改其他文件,除了添加include':javalib'到settings.gradle。添加project lib dependency:
project(':app') {
dependencies {
compile project(':javalib') // line 23
}
}
到根构建构建文件并从命令行运行gradle,获取:
其中: 构建文件' D:\ AndroidStudioProjects \ AndroidMain \ build.gradle'行:23
出了什么问题: 评估根项目' AndroidMain'。
时出现问题无法在org.grad上找到参数[project':javalib']的方法compile() le.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler_Decorated@46 3ca82f。
adding the java plugin对根构建文件没有帮助。
我认为它不在wrong place。
根项目和添加的子项目都有gradle包装器。
任何指针都将受到赞赏。
感谢
编辑:为了澄清,根构建文件是:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
task hello << { task -> println "I'm $task.project.name" }
}
project(':app') {
dependencies {
//compile project(':javalib') // causes problems
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
并且应用构建文件是:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "acme.androidmain"
minSdkVersion 22
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
//compile project(':javalib') // use :javalib:jar?
//testCompile project(':javalib')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
}
编辑:本练习的全部目的是将核心java代码放入android项目中。目前核心代码是一个独立的gradle / eclispe项目。我在android项目中有一个批处理,它执行gradle -p standaloneprojectdir / jar并将jar复制到libs /.
我只是会发布一个更简单的方法,而不是发布jar并从存储库中获取它,因为这一切都在我的电脑上完成。
将所有代码保存起来并进行构建会很好:(
编辑:根据RaGe的建议,这里有virgin android studio project和virgin gradle/eclipse project。没有对这些文件进行编辑。你的任务应该选择接受它是为了让Android应用程序轻松访问java项目类(即新的Library();在MainActivity.onCreate()中将编译并运行)。我不在乎java项目所在的位置。理想情况下,这两个来源都将在
尝试this也失败了。说:&gt;找不到:virginjavaproject,但目录确实存在。
编辑:实际工作的是RaGe对virgin android project的拉取请求。
答案 0 :(得分:4)
你已经拥有
compile project(':javalib')
在您的:app
项目中,您不必从根build.gradle中注入依赖项。如果您仍希望从根build.gradle
执行此操作,则执行此操作的正确方法是:
configure(':app') {
dependencies {
compile project(':javalib') // causes problems - NOT ANYMORE!
}
}
virgin android studio头是有效的。
答案 1 :(得分:1)
我们有两个名为“build.gradle”的文件。 确保您已在“app”文件夹
内的build.gradle文件中复制了“编译代码”答案 2 :(得分:0)
构建脚本正在混合buildcript依赖项(即构建本身的依赖项;通常这意味着Gradle插件)具有常规依赖项(即要编译/运行的代码的依赖项)。后者需要进入依赖{...},而不是进入buildscript {dependencies {...}}。除了类路径依赖项之外的所有内容都是常规依赖项。
答案 3 :(得分:0)
只需将其粘贴到build.gradle上(项目:&#34;您的项目名称&#34;)
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
答案 4 :(得分:0)
我有这个问题,但有我自己的库。正确编译的方法是:
compile project(path: ':MyLib')