在Android Studio中我有一个Android项目,其中包含一个名为go
的模块,其中Gradle是一个Android库。它包含一个名为com.nwoods.go
的Java包。为了这个Stack Overflow提交,它包含一个名为FooBar
的类
在同一个Android项目中,我有一个名为ugurdemo1
的应用程序模块,它在程序包com.nwoods.ugurdemo1
中有一个MainActivity类。
Android Studio我已经修改了模块ugurdemo1
的项目结构,以便在编译时依赖库go
。在ugurdemo1
的MainActivity中,我想引用并使用FooBar
中的课程go
。为此,我使用典型的Java import语句为该类开头:
import com.nwoods.go.FooBar; ... @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FooBar myFooBarObject = null;
在对源进行干净重建后,Android Studio仍然无法解析FooBar
的符号。 Stack Overflow上的类似问题通过编辑“依赖关系”对话框中的编译时设置来解决,但是再次无效。如果有任何帮助,我目前正在运行Android Studio IO Preview (0.3.6)
答案 0 :(得分:8)
听起来你做得对,但要确认一下,这是一个Project Structure依赖项面板的截图,它允许你在Gradle中设置模块依赖:
此模块已经依赖于通过Maven样式导入检索的两个库,并且它还作为Foo模块的依赖项。要添加新的依赖项,请单击底部的+按钮并选择依赖项类型(如图所示)。
您也可以手动编辑Gradle构建文件。在我的示例中,“two”模块的目录中有一个build.gradle
文件。它有一个dependencies
块,如下所示:
dependencies {
compile 'com.android.support:support-v4:+'
compile 'com.android.support:appcompat-v7:+'
compile project(':Foo')
}
您可以添加更多compile project
行来添加新模块依赖项;使用冒号分隔的语法来提供模块相对于项目根目录的位置。
如果您手动编辑build.gradle
文件,当您完成Android Studio重新读取文件并获取更改时,请单击工具栏中的“使用Gradle文件同步项目”按钮。
答案 1 :(得分:2)
问题可能不是您的项目,而是Android Studio本身的错误,在此处进行跟踪:https://code.google.com/p/android/issues/detail?id=65915
“修复”是从除根项目目录之外的所有模块中删除settings.gradle。
例如,在我的情况下,我的项目结构如下所示:
build.gradle
settings.gradle
library_module:
build.gradle
settings.gradle
library:
build.gradle
settings.gradle
android_app:
settings.gradle
build.gradle
删除后,结构如下所示:
build.gradle
settings.gradle
library_module:
build.gradle
library:
build.gradle
android_app:
build.gradle
干杯