为啥编译时库模块中的包不存在,即使 Android Studio 显示代码中没有错误?

Posted

技术标签:

【中文标题】为啥编译时库模块中的包不存在,即使 Android Studio 显示代码中没有错误?【英文标题】:Why do packages from library module does not exist upon compilation, even when Android Studio shows no errors in code?为什么编译时库模块中的包不存在,即使 Android Studio 显示代码中没有错误? 【发布时间】:2015-05-01 23:56:29 【问题描述】:

我的 libs/AndEngine 文件夹中有一个库模块 (AndEngine)。该代码编译得很好。

在我的根 settings.gradle 文件中,我有这个:

include ':app:libs:AndEngine'
include ':app' 

然后在我的应用程序的 build.gradle 文件中,我在依赖项中有这个:

compile project('libs:AndEngine')

在我的应用程序代码中,所有导入甚至自动完成都可以正常工作,没有任何错误。在 android Studio 中,可以找到所有包。但是当我去编译时,我得到了大约一百个这样的错误:

error: package org.andengine.entity.primitive does not exist
import org.andengine.entity.primitive.Rectangle;

我来自 Eclipse 的 ADK,所以我是 android studio 的新手。如果有人对此问题有任何答案,我将非常感激!

【问题讨论】:

【参考方案1】:

改变这一行。

compile project('libs:AndEngine')

compile project(':app:libs:AndEngine')

在任何情况下,将库模块放在应用程序模块中都不是一个好主意。 我建议你使用这种结构:

root
  settings.gradle
  app
    build.gradle
  libs
    AndEngine
      build.gradle

然后在你的settings.gradle

include ':libs:AndEngine'
include ':app' 

在你的app/build.gradle

compile project(':libs:AndEngine')

【讨论】:

我做的完全一样,但不会出错!还有什么问题!

以上是关于为啥编译时库模块中的包不存在,即使 Android Studio 显示代码中没有错误?的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio 库“错误:包不存在”

idea编译时出现错误:xx包不存在,但是代码里面不报错

idea编译时出现错误:xx包不存在,但是代码里面不报错

idea找不到存在的包

Intellij 显示我的包不存在.. 但它存在吗?

eclipse 一个项目中 要建4个包,为啥建的包不是在同一目录(src)下。。而是要在Libraries下。。