我有一个build.gradle,并且之前已添加但后来替换了一个依赖项:
dependencies {
...
// I WANT THIS
implementation fileTree(dir: 'new_project/android/src/main', include: ['*.jar'])
// I dont want this
// implementation fileTree(dir: 'old_project/android/src/main', include: ['*.jar'])
}
但是Gradle(使用6.1.1)已经缓存了旧的依赖项,并且即使在找不到旧的依赖项(即使在同步并重新导入gradle项目之后)也不想将其替换为我的新依赖项(我删除了old_project),所以它给了我
Cause: assert pluginDirectory.exists()
| |
| false
old_project/android
我什至在任何项目代码中都找不到这个assert
代码,所以我不知道该怎么办。
我也试图从项目设置中删除该模块,但是当我按下“设置”窗口的“应用”或“确定”时,Android Studio重新添加了该模块。
我正在尝试使用经过改进的flutter存储库,而old_project实际上是/usr/local/flutter/.pub-cache/hosted/pub.dartlang.org/camera-0.5.8+2
,而新项目是我创建的存储库(从github克隆项目)。
事实证明,Flutter正在读取最初创建的文件:
def moduleProjectRoot = project(':flutter').projectDir.parentFile.parentFile
def pluginsFile = new File(moduleProjectRoot, '.flutter-plugins-dependencies')
答案 0 :(得分:2)
implementation fileTree(dir: 'old_project/android/src/main', include: ['*.jar'])
您可以通过这种方式删除本地 jar/module
仅供参考-您可以打开Gradle下的 settings.gradle
并删除特定的模块。如果您要删除 ':library'
,则
OLD
include ':app', ':library', ':viewpagerdotsindicator'
现在
include ':app', ':viewpagerdotsindicator'
最后, Invalidate Caches/Restart
答案 1 :(得分:0)
我想从Flutter插件中修改外部Java / Kotlin代码,并使用app/build.gradle
使用
implementation fileTree(dir: '/usr/local/flutter/.pub-cache/hosted/pub.dartlang.org/camera-0.5.8+2/android/src/main', include: ['*.jar'])
相反,您应该派生存储库,并将项目的本地路径添加到pubspec.yaml
:
# No longer using the remote version commented below
# camera: ^0.5.8+2
camera:
path: '/path/to/repo/plugins/packages/camera'
旧答案,在我意识到fileTree
没有做任何事情之前:在您的项目中,rm .flutter-plugins-dependencies
,或
从您的Android Studio文件夹rm ../.flutter-plugins-dependencies
为什么?:添加这些插件时,Flutter在Flutter项目文件夹中创建了.flutter-plugins-dependencies
,而不是android
子文件夹。因为它是上一级的(不是Android Studio中的),并且被.gitignore
忽略了,所以花了很长时间才找到它。