我在过去的几个月中一直在学习Android,并使用Eclipse v4.2(Juno)作为我的IDE。
我正在尝试迁移到Android Studio。我如何排除一些我尚未完成的构建路径中的类?
在Eclipse中,这是一个简单的右键单击。我在Android Studio中找不到任何参考信息。
我正在尝试迁移到Android Studio。我如何排除一些我尚未完成的构建路径中的类?
在Eclipse中,这是一个简单的右键单击。我在Android Studio中找不到任何参考信息。
据我所知,IntelliJ允许排除包。在Linux中打开项目结构(Ctrl+Alt+Shift+S),然后进入模块->源码选项卡。
如果只想排除一个类,则可以使用Gradle构建文件。
Android Studio使用Gradle,因此在build.gradle文件中,在android配置内添加一个自定义SourceSet来排除您的类,例如:
android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
defaultConfig {
minSdkVersion 19
targetSdkVersion 19
packageName "org.homelab.lab"
testPackageName "org.homelab.lab.test"
}
sourceSets {
main {
java {
exclude '**/SomeExcludedClass.java'
}
}
androidTest {
java {
exclude '**/TestSomeExcludedClass.java'
}
}
}
}
它在Android Studio v3.0上运行良好:
apply plugin: 'com.android.application'
android {
defaultConfig {...}
buildTypes {...}
sourceSets {
main {
java {
exclude 'com/example/full/package/path/MainActivity.java'
}
}
}
}
这是不可能的。
也许在2013年5月提供答案时可以实现,但现在不行了(截至Android Studio 1.2版本)。
根据标签,他们正在针对Android Studio 1.5添加这些功能。
对于我的情况,我需要防止一个整个文件夹,我是通过以下方式实现的 -
sourceSets {
main {
jniLibs.srcDirs = ['libs']
java {
exclude 'com/example/myfolder'
/* The holder name I want to excludes its all classes */
}
}
}
从https://dev59.com/M7Hma4cB1Zd3GeqPK2VE#69261642转载,但在这里重复似乎很有用。
我发现了一种方法,可以使这个方法特别适用于Android单元测试(但我假设它是可适应的),使用了上面链接中其他解决方案的组合:
def filesToExclude = [
'**/*TestOne*.kt',
'**/*TestTwo*.kt',
...
]
tasks.withType(org.gradle.api.tasks.SourceTask.class).configureEach {
it.exclude(filesToExclude)
}
android.sourceSets.test.kotlin.exclude(filesToExclude)
将它移动到一个新文件夹中。
右键单击 → 在资源管理器中显示 → 剪切,然后粘贴到一个新文件夹中(不在任何项目之内)。
我刚刚在AndroidStudioProjects文件夹中创建了一个新文件夹,并把它们放在那里。