问题标签 [gradle-dependencies]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1083 浏览

android - 升级Android studio 3.0后,externalNativeBuildRelease出现依赖错误

在 2.3.3 上,构建运行良好,但是,在升级 3.0.0 后出现此问题。有谁能帮助我吗?原因是 libSDL2.so 没有生成,但是,我不明白为什么 SDLActivity 模块在 SDL2-android-studio 完成构建之前就开始构建。

我认为 SDLActivity 模块在 SDL2-android-studio 模块的构建作业完成后开始构建。事实上,在 2.3.3 上,它起作用了。但是,在 3.0.0 上,它没有。也就是说,在 2.3.3 上,SDLActivity 的任务 externaNativeBuildRelease 在 SDL-android-studio 的任务完成之后开始。在 3.0.0 上,在 SDL-android-stduio-studio 的任务 transformClassesAndResourcesWithPrepareIntermediateJasrForDebug 之后,处理所有的 SDLActivity。如何控制任务之间的依赖关系?

提前致谢。

SDL2 模块的 build.gradle 如下所示。

而且,SDLActivity 的 build.gradle 如下所示。

在 3.0.0 上,构建失败

执行任务:[:SDLActivity:generateReleaseSources, :SDLActivity:mockableAndroidJar, :SDLActivity:compileReleaseUnitTestSources, :SDLActivity:compileReleaseSources]

...

:SDLActivity:preReleaseUnitTestBuild UP-TO-DATE :SDLActivity:javaPreCompileReleaseUnitTest :SDLActivity:compileReleaseUnitTestJavaWithJavac :SDLActivity:processReleaseJavaRes 无源 :SDLActivity:processReleaseUnitTestJavaRes 无源 :SDLActivity:compileReleaseUnitTestSources :SDLActivity:generateJsonModelRelease :SDL64-v8aninRelease:main armActivity:externalN8a错误:'../../../../../distribution/SDL2/lib/arm64-v8a/libSDL2.so','D:/corelab_proj/GearToTciPlayer2/distribution/main/lib/arm64 需要-v8a/libmain.so',缺少并且没有已知的规则可以使它:SDLActivity:externalNativeBuildRelease FAILED

FAILURE:构建失败并出现异常。

  • 出了什么问题:任务“:SDLActivity:externalNativeBuildRelease”执行失败。

    构建命令失败。使用参数执行进程 D:\User-expansion\Android\sdk\cmake\3.6.4111459\bin\cmake.exe 时出错 {--build D:\corelab_proj\GearToTciPlayer2\SDLActivity.externalNativeBuild\cmake\release\arm64-v8a --target main} ninja: 错误: '../../../../../distribution/SDL2/lib/arm64-v8a/libSDL2.so', 需要'D:/corelab_proj/GearToTciPlayer2/ distribution/main/lib/arm64-v8a/libmain.so',缺少并且没有已知的规则可以使它

  • 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。

  • 在https://help.gradle.org获得更多帮助

13 秒内构建失败

69 个可操作的任务:19 个已执行,50 个最新

但是,在 2.3.3 上,构建成功

执行任务:[:SDLActivity:generateReleaseSources, :SDLActivity:prepareReleaseUnitTestDependencies, :SDLActivity:mockableAndroidJar, :SDLActivity:compileReleaseUnitTestSources, :SDLActivity:compileReleaseSources]

按需配置是一项孵化功能。setTestClassesDir(File) 方法已被弃用,并计划在 Gradle 5.0 中删除。请改用 setTestClassesDirs(FileCollection) 方法。getTestClassesDir() 方法已被弃用,并计划在 Gradle 5.0 中删除。请改用 getTestClassesDirs() 方法。ConfigurableReport.setDestination(Object) 方法已被弃用,并计划在 Gradle 5.0 中删除。请改用 ConfigurableReport.setDestination(File) 方法。:SDL2-android-studio:preBuild UP-TO-DATE :SDL2-android-studio:preReleaseBuild UP-TO-DATE :SDL2-android-studio:checkReleaseManifest :SDL2-android-studio:prepareReleaseDependencies :SDL2-android-studio:compileReleaseAidl最新:SDL2-android-studio:compileLint 最新:SDL2-android-studio: SDLActivity:generateReleaseResources UP-TO-DATE :SDLActivity:mergeReleaseResources UP-TO-DATE :SDLActivity:processReleaseManifest UP-TO-DATE :SDLActivity:processReleaseResources :SDLActivity:generateReleaseSources :SDLActivity:prepareReleaseUnitTestDependencies :SDLActivity:mockableAndroidJar UP-TO-DATE :SDLActivity: incrementalReleaseJavaCompilationSafeguard :SDLActivity:javaPreCompileRelease :SDLActivity:compileReleaseJavaWithJavac 注意:某些输入文件使用或覆盖已弃用的 API。注意:使用 -Xlint:deprecation 重新编译以获取详细信息。SDLActivity:incrementalReleaseJavaCompilationSafeguard :SDLActivity:javaPreCompileRelease :SDLActivity:compileReleaseJavaWithJavac 注意:某些输入文件使用或覆盖已弃用的 API。注意:使用 -Xlint:deprecation 重新编译以获取详细信息。SDLActivity:incrementalReleaseJavaCompilationSafeguard :SDLActivity:javaPreCompileRelease :SDLActivity:compileReleaseJavaWithJavac 注意:某些输入文件使用或覆盖已弃用的 API。注意:使用 -Xlint:deprecation 重新编译以获取详细信息。

:SDLActivity:incrementalReleaseUnitTestJavaCompilationSafeguard NO-SOURCE :SDLActivity:javaPreCompileReleaseUnitTest :SDLActivity:compileReleaseUnitTestJavaWithJavac :SDLActivity:processReleaseJavaRes NO-SOURCE :SDLActivity:processReleaseUnitTestJavaRes NO-SOURCE :SDLActivity:compileReleaseUnitTestSources :SDLActivity:generateJsonModelRelease :SDLActivity:externalNativeBuildRelease [1/10] Building CXX object CMakeFiles /main.dir/src/cpp/SDLAudioImpl.cpp.o ... [10/10] 链接 CXX 共享库 D:\corelab_proj\GearToTciPlayer2\dist ribution\main\lib\armeabi-v7a\libmain.so :SDLActivity :compileReleaseSources

在 1m 38s 内构建成功 133 个可操作的任务:77 个已执行,56 个最新

0 投票
0 回答
91 浏览

android - DexArchiveMergerException:transformDexArchiveWithExternalLibsDexMergerForDebug

安卓 3.0.1

我遇到了 DexArchiveMergerException 的问题,我发现这是库(实现、编译)的问题。但我找不到要修复哪一个。我试图清理和重建。

这是我的 build.gradle。我可以用我的依赖项做什么?非常感谢 :)

0 投票
1 回答
942 浏览

android - 没有解决方案:找不到与给定名称匹配的资源:attr 'android:keyboardNavigationCluster'

得到这个:错误:(15、21)没有找到与给定名称匹配的资源: attr 'android:keyboardNavigationCluster'

使用 Android Studio 3.0.1,react-native 0.48.2。

我当前的 build.gradle(app):

依赖项:

gradlew 应用程序:依赖项

尝试了许多解决方案,如: 找不到与给定名称匹配的资源:attr 'android:keyboardNavigationCluster'。更新到支持库 26.0.0 时

没有任何效果!

在依赖项中没有红色下划线。

对这个案例有什么具体建议吗?非常感谢!

编辑: 有关该错误的更多信息:(不得不提一下,这似乎是 react-native-fbsdk 包中的问题)

错误截图

0 投票
1 回答
138 浏览

android - 如何告诉 Gradle 在持续集成模板系统中重用依赖项?

我们有一个项目模板,经过清理,无需编译,只需要 5mb 的磁盘空间。在我们的持续集成系统上,为我们的每个项目复制模板,然后通过脚本更改模板,该脚本使用每个项目的代码和项目属性差异准备模板。一旦准备好,它就会被编译。

我们所有的项目都具有相同的依赖项。每次复制模板并准备成为不同的项目时,都会再次下载相同的依赖项。今天,我们遇到了一个非常罕见和危险的问题。由于 Gradle 无法下载依赖项,我们所有的编译都开始失败:

因此,我需要知道如何才能最终实现 Gradle 只下载一次所有依赖项,而不是每次我复制模板并准备将其作为另一个项目时。当我将模板复制到一个新文件夹并重命名应用程序和其他一些项目时,Gradle 正在 Gradle 缓存目录上为其创建一个新的缓存文件夹。有没有办法告诉 Gradle 每次编译应用程序时应该存储和搜索 Gradle 依赖项的确切目录路径?

0 投票
2 回答
62 浏览

android - 依赖是危险的吗?

android 的某些依赖项使用起来会很危险吗?我的意思是他们里面可能有恶意代码吗?毕竟它们是由我们不认识的用户写的

0 投票
3 回答
4338 浏览

kotlin - 将 Gradle 子项目与 Kotlin 多平台一起使用

我正在使用 Kotlin 多平台(JVM 和 JS),它在 IDEA 中创建了三个项目demodemo-jsdemo-jvm.

我想将通用代码拆分为更多的子项目/子模块。假设我添加commonmod;我如何使它编译?

对于 , 现在的错误gradle run -p demo-jvm是:

但我认为我这样做从根本上是错误的,因为我不知道什么应该取决于什么(尽管我尝试了很多迭代)。如果我解决了这个错误,我会得到其他错误,然后再得到其他错误,直到我回到这个错误。


作为一个最小但仍然很大的例子,我有:

演示/settings.gradle

演示/build.gradle

演示/演示-jvm/settings.gradle

演示/演示-jvm/build.gradle

演示/演示-js/settings.gradle

演示/演示-js/build.gradle

演示/commonmod/settings.gradle

演示/commonmod/build.gradle

0 投票
2 回答
6382 浏览

android - Gradle 同步失败:找不到参数的方法 Dependencies()

完整错误:

顶级 build.gradle:

0 投票
0 回答
384 浏览

android - 为什么在 gradle.build 中将“compile”更改为“implementation”后出现错误?

这是我现在项目中一个模块中的 gradle.build 文件:

这些是我现在得到的错误(如果我改变编译就没有):

错误:包android.support.v7.app不存在导入android.support.v7.app.AppCompatActivity;

错误:找不到符号公共类 GalleryFragment 扩展片段

还有更多。

如果不推荐使用编译,为什么实现的行为如此不同?

0 投票
0 回答
283 浏览

android - 无法解析安卓系统的依赖

我刚刚开始学习 Android,我刚刚创建了第一个应用程序,我遇到了这个。

我尝试取消选中离线工作并再次同步,但我不知道出了什么问题。任何人?

这是最初在默认打开的 android gradle 中编写的内容。

这是另一个 build.gradle 文件。自从开始新的 android 项目以来,我没有做任何修改

0 投票
2 回答
170 浏览

java - 如何以编程方式删除/删除库?

我已将第三方的一些库集成到我的 android 应用程序中。

他们使用带有位置的后台服务,但由于 Android 8 更新了后台位置限制 ,因此导致java.lang.IllegalStateException错误。

我试图添加以下几行以避免错误,但它失败了:

我可以删除或删除库,或以编程方式停止主要活动中的服务吗?


[解决了]

我发现了一个可能的解决方案来解决这个问题,我们可以使用 PackageManager 从第三方库启用/禁用服务/接收器/活动。

感谢Varun 的回答