ANDROID studio编译gradle文件时,ANDROID_HOME为空
我有以下gradle文件:ANDROID studio编译gradle文件时,ANDROID_HOME为空,android,gradle,android-studio,Android,Gradle,Android Studio,我有以下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.0.0'
/// 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.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
def home = System.getenv("ANDROID_HOME");
// Work around https://code.google.com/p/android/issues/detail?id=69270.
File file = new File(home);
maven {
url new File(file.absolutePath, "/extras/android/m2repository/").toURI().toString()
}
maven {
url "http://localhost:8081/nexus/content/repositories/snapshots"
credentials {
username 'admin'
password 'admin123'
}
}
}
}
当我运行gradle Assembly时,项目成功运行。但是当工作室建造它时,它抛出了一个
Error:(20, 0) Ambiguous method overloading for method java.io.File#<init>.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.String]
[class java.net.URI]
错误:(20,0)方法java.io.File#的方法重载不明确。
由于以下对象之间的原型重叠,无法解析要为[null]调用的方法:
[类java.lang.String]
[类java.net.URI]
也就是说,主变量为null。
打开命令行并执行
echo$ANDROID\u HOME
生成正确的目录。我重新启动了android studio。Android studio的版本是1.0.2,gradle的版本是2.2.1。这是一个老问题,但我最近仍然遇到同样的问题。我正在通过.bash_配置文件设置env变量,并且得到了空值。。。这对我很有用:
通过运行以下命令从命令行启动Android studio:
/Applications/Android\ Studio.app/Contents/MacOS/studio
也许这可以帮助其他有同样问题的人。检查“studio.sh”中正在使用的环境变量。可能正在使用“studio_home”。谢谢您的回答。问题是,我是从nautilus而不是从cmd开始的,所以出于某种原因,bashrc中的env变量不在那里。一般来说,它不设置环境变量。你为什么要做一个需要$ANDROID_HOME的bug解决方案?那个bug似乎已经过时了。同意
mavenLocal()
现在应该可以工作了。谢谢大家。mavenLocal解析到我的主maven存储库,在那里找不到android库工件。它们位于SDK管理器创建的repo中。我一定错过了什么。