【问题标题】:Library projects in Android Studio only work if nested in the project tree?Android Studio 中的库项目仅在嵌套在项目树中时才有效?
【发布时间】:2013-06-09 21:05:38
【问题描述】:

我正在尝试在 Android Studio 中构建一个依赖于 ActionbarSherlock 的项目。

经过大量阅读,我最终得到了一个有效的构建,但前提是我将 ABS 项目嵌套在我的主项目中,如下所示:

MainProject
MainProject\ABS (copied here and then used import module)
MainProject\MainModule (the one created by the wizard)

我不得不编辑各种Gradle文件,settings.gradle如下:

include ':OnTop'
include ':ActionbarSherlock'

我相应地修复了build.gradle 文件中的依赖关系。

我认为这是次优的。当然我不想在每个使用它的新项目中复制 ABS 模块?我应该怎么做?

【问题讨论】:

标签: android actionbarsherlock android-studio


【解决方案1】:

每一步都在这里:How do I add a library project to Android Studio?

如果您想了解有关 gradle 的更多信息,请参阅 Xavier Ducrohet 在 youtube 上的 Google I/O 会议:http://www.youtube.com/watch?v=LCJAgPkpmR0

【讨论】:

  • 该解决方案生成了一个类似于我的项目,在项目树中嵌入了 ABS(事实上,我在许多其他项目中都读过那个答案)。我要问的是如何将 ABS 库保留在项目之外,以便可以在许多项目之间共享。
  • ActionBarSherlock 是您项目中的一个模块。你想要的是一个独立的模块。不知道有没有可能。
【解决方案2】:

我对这个问题进行了足够多的搜索,最后这些是我的结果:-

这个示例项目

-> 项目根目录

d:\asprojects\这个项目

-> 模块

d:\asprojects\thisproject\MyModule

-> 库

d:\asprojects\lvl

d:\asprojects\MyLibrary

-> 罐子

D:/asprojects/android-support-v4.jar

D:/asprojects/GoogleAdMobAdsSdk-6.4.1.jar

-如果你想使用外部(项目外)库,那么 settings.gradle 必须像这样指向它:-

settings.gradle

include ':lvl', ':MyLibrary', ':MyModule'
project(':MyLibrary').projectDir = new File('D:/asprojects/MyLibrary')
project(':lvl').projectDir = new File('D:/asprojects/lvl')

-然后您需要像这样正确设置 MyModule 的 build.gradle:-

build.gradle

dependencies  
{ 
compile files('D:/asprojects/android-support-v4.jar') 
compile files('D:/asprojects/GoogleAdMobAdsSdk-6.4.1.jar') 
compile project(':lvl') compile project(':MyLibrary')   
}

-但 IDE 不会喜欢这些绝对路径,会说找不到。

-但是命令行工作的 gradlw 很好:-

gradlew clean
gradlew build
gradlew installRelease
etc

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 2015-01-31
    • 2014-04-12
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多