在Eclipse中,我可以将源文件夹作为"链接的源文件夹"添加到我的android项目中。 如何在Android Studio中实现同一目的?

或者是否可以添加外部文件夹以构建gradle?

在您的build.gradle中将以下内容添加到android节点的末尾

android {

....

....

sourceSets {

main.java.srcDirs += 'src/main/'

}

}

真的很有帮助。为什么将sourceSets放在android的范围内?我的dependencies没了。

但是此解决方案仅处理Java文件。那么src下的所有资源-可绘制,布局,字符串等呢?如何将它们放在外部文件夹中?

对于appengine,sourceSet必须位于根级别-不能嵌套在其中。奇怪的是,这将是android模块的一种方式,而appengine模块的另一种方式。

我认为它不支持Eclipse的include / exclude选项。太糟糕了。

我的build.gradle中没有android块。我应该加吗?

@Deckard模块" app"的build.gradle中应该有一个android块,而不是在根构建文件中。

请注意,也可以使用绝对路径-目录然后出现在Android Studio中现有" src"目录的旁边,而不是内部。当将它们内部符号链接并添加为源目录时,将出现"重复类"错误。另请参阅我对symlink答案的评论。

@GyRo您可以对资源文件执行相同的操作:在sourceSets中添加行main.res.srcDirs +=

我不知道什么是" Anrdriod节点"。现在您的分数是-1。

正确的答案是:

android {

....

....

sourceSets {

main.java.srcDirs += 'src/main/'

}

}

此外,如果您的外部源目录不在src/main下,则可以使用如下相对路径:

sourceSets {

main.java.srcDirs += 'src/main/../../../'

}

关于相对路径-我想知道是否可以使用某种gradle变量,例如。 srcDirs + =" $(ProjectDir)/ mylib / src"?我是Gradle的新手,不知道它是否支持这样的功能。

您可以省略srcmain....前缀,因为这些点会取消路径分量。

@BrianWhite如何在另一台机器上指定来源集? sourceSets { main.java.srcDirs += srcmain\\10.51.70.21\me\myco\apps\myapp\src }

我不希望您能够这样做,因为据我所知,它只是使用操作系统open()来访问文件。您可以使用nfs或smb之类的方法将远程目录直接安装到文件系统中,但这并不是特定于Android Studio的。

以防万一有人感兴趣,这里有一个完整的Java模块gradle文件,可正确生成并引用所构建的工件

在Android多模块应用程序中

buildscript {

repositories {

maven {

url"https://plugins.gradle.org/m2/"

}

}

dependencies {

classpath"net.ltgt.gradle:gradle-apt-plugin:0.15"

}

}

apply plugin:"net.ltgt.apt"

apply plugin:"java-library"

apply plugin:"idea"

idea {

module {

sourceDirs += file("$buildDir/generated/source/apt/main")

testSourceDirs += file("$buildDir/generated/source/apt/test")

}

}

dependencies {

// Dagger 2 and Compiler

compile"com.google.dagger:dagger:2.15"

apt"com.google.dagger:dagger-compiler:2.15"

compile"com.google.guava:guava:24.1-jre"

}

sourceCompatibility ="1.8"

targetCompatibility ="1.8"

虽然sourceSets允许您包括整个目录结构,但无法在Android Studio(从1.2版开始)中排除其中的部分内容,如下所述:Android Studio是否从构建中排除类?

在更新Android Studio以支持Android来源的include / exclude指令之前,Symlinks会很好地工作。如果使用Windows,则本机工具(例如junction或mklink)可以完成Un * x符号链接。 CygWin也可以稍加强制性地创建它们。请参阅:Windows中的Git符号链接和如何在Windows 7中使用cygwin进行符号链接

不幸的是,我在Android Studio 2.1.2中通过符号链接得到以下行为:文件显示在项目文件旁边,并且具有干净的版本,并且可以正常工作。但是在符号链接目录中进行更改后的每个常规构建都会产生gradle错误:"无法找到源Java类:// MyClass.java,因为它不属于任何源目录:[ src目录,包括" ... / src / main / java",其中符号链接位于软件包文件夹中]"。

@ user905686是的!天啊。我花了几个小时才发现其他人也遇到了同样的问题。就像您说的那样,符号链接可以进行干净的"重建",但不能在后续运行中使用。它太费时间了,因此我刚刚更新了设置以引用实际目录而不是符号链接。有点痛苦,但是它使开发速度更快。

我已经添加了错误报告issuetracker.google.com/issues/65343978,但是我不确定是否将其作为错误接受。

您可以将源文件夹添加到构建脚本中,然后进行同步。在此处的文档中查找sourceSets:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Basic-Project

我还没有找到添加测试源文件夹的好方法。我已将源手动添加到.iml文件中。当然,这意味着它将在每次同步构建脚本时消失。

如果您不使用gradle(例如,通过APK创建项目),则可以通过Android Studio UI(从3.3.2版开始)进行操作:

右键单击项目的根目录,选择Open Module Settings

点击+ Add Content Root按钮(右中)

添加您的路径并点击OK

以我的经验(使用本机代码),只要您的.so是用调试符号构建的并且来自相同的绝对路径,就会自动识别源文件中添加的断点。

在java中添加源_关于Java:如何在Android Studio中添加链接的源文件夹?相关推荐

  1. android getter不起作用,java - 如何在Android Studio中自动生成getter和setter

    java - 如何在Android Studio中自动生成getter和setter Android Studio中是否有一个快捷方式可以自动生成给定类中的getter和setter? 14个解决方案 ...

  2. android 最新sdk版本,详解如何在Android studio中更新sdk版本和build-tools版本

    一.首先看下Android开发用到的sdk目录: build-tools 保存着一些Android平台相关通用工具,比如adb.和aapt.aidl.dx等文件. aapt即Android Asset ...

  3. android studio点击图片,如何在Android Studio中的模拟器图库中添加图像?

    如何在Android Studio中的模拟器图库中添加图像? 我正在开发图像过滤器应用程序. 但是,如果我没有任何图像,就无法真正尝试. 我知道我可以在电话中对其进行测试,但这并不相同,因为我需要错误 ...

  4. android编辑配置文件,如何在android studio中修改配置文件

    在使用android studio过程中,你知道怎么手动修改配置文件吗?下面是学习啦小编给大家整理的一些有关在android studio中修改配置文件的方法,希望对大家有帮助! 在android s ...

  5. linux gradle仓库位置,如何在Android Studio中使用Gradle发布项目至Jcenter仓库

    简述 目前非常流行将开源库上传至Jcenter仓库中,使用起来非常方便且易于维护,特别是在Android Studio环境中,只需几步配置就可以轻松实现上传和发布. Library的转换和引用 博主的 ...

  6. 如何在Android Studio中获取SHA-1指纹证书以获得调试模式?

    本文翻译自:How to get the SHA-1 fingerprint certificate in Android Studio for debug mode? I have shifted ...

  7. android vitamio 函数,如何在Android Studio中集成Vitamio?

    我试图将Vitamio Bundle集成到我的Android Studio项目中,但这不适用于我的步骤 >我创建了一个新的Android项目"空白活动" >我选择文件& ...

  8. 如何在Android Studio中删除模块

    本文翻译自:How to delete a module in Android Studio Is there a way to delete a module within Android Stud ...

  9. android studio创建md,如何在Android Studio中设置*md文件打开方式

    最近在Android Studio中写一些Demo的时候,会顺便在里面创建一个.md文件用来进行Demo笔记的书写.然而Android Studio不带有markdown预览功能,所以我就琢磨如何在A ...

最新文章

  1. python代码壁纸-70行python代码实现壁纸批量下载
  2. 一篇文章讲懂Vmware网卡配置,解决常见问题
  3. QCustomPlot实现实时动态曲线(包含手动设置XY轴显示的方法)
  4. awk学习笔记(10) - 数组
  5. [转]nginx常见配置详解
  6. aspose转pdf乱码问题
  7. 贪吃蛇c加加代码_C语言贪吃蛇代码完整加注释
  8. 域控服务器组策略管理找不到网络,组策略找不到域服务器解决方法重建SYSVOL和NETLOGON共享...
  9. 怎么恢复相机格式化的照片?
  10. fastdb学习笔记
  11. 字节跳动一面c++视频面试(第二个部门,效率工程部门)(一面通过)
  12. 实用软件/浏览器插件/网站合集(个人向,更新中)
  13. MySQL 统计数量的方式 coutn(*) 和 count(1)
  14. ARP是如何工作的?
  15. 郎平卸任后首次接受采访,说出执教8年的最大感受
  16. 旺旺的新故事太多,消费者该记住哪一个?
  17. 笛卡尔积 php,PHP笛卡尔积实现算法示例
  18. 基于智能移动设备的IP电话软件的设计与实现
  19. 抓取七星彩历史开奖数java据,七星彩中五个号
  20. Dalvik和ART

热门文章

  1. java 加载class文件路径_动手实现MVC: 1. Java 扫描并加载包路径下class文件
  2. 前端if else_应该记录的一些项目代码(前端)
  3. 1093芯片做正弦波逆变器_正弦波逆变器中的SPWM调制(钟任生)
  4. 如何在mac系统下搭建git服务器
  5. php 字符符转整数
  6. Android 代码执行Linux Shell小记
  7. Linux 系统应用编程——网络编程(高级篇)
  8. vue 3.x 中使用ele-image时相对路径的图片加载失败
  9. python多线程编程(2): 线程的创建、启动、挂起和退出
  10. VIM 正则表达式搜索字符串