没有互联网连接建立项目

Dim*_*Dim 5 android gradle

由于安全原因,我有一个项目需要在离线模式下工作,没有任何互联网连接.我的androidStudio定义为离线模式.当我通过Task/build/assembleRelease运行汇编版本时,一切正常,我构建了我的apk.但是当通过命令行命令运行时:

gradlew --offline assembleRelease
Run Code Online (Sandbox Code Playgroud)

我得到的一堆错误比没有这个和那个的兑现版本.当我修复一个错误并将一些文件复制到缓存时,我得到新的错误,其他东西丢失了.

那么,如何通过androidStudio的assembleRelease工作?如何通过cmd或远程运行相同的命令,因为它似乎需要所有缓存.从studio和cmd运行assembleRelease有什么区别?

此外,我知道简单的解决方案,在线运行一次然后它的工作原理.不能这样做......

由于我的PC能够构建整体APK,如何通过cmd或远程无需androidStudio这样做?

Luk*_*fer 8

首先,我真的很惊讶你可以使用Android Studio构建项目,但不能直接调用Gradle.不同的Gradle版本可能是一个原因,但由于您已经使用了Gradle包装器,因此不太可能.也许Android Studio未配置为使用包装器.


但是,我明确建议不要复制不同系统的Gradle缓存之间的依赖关系.相反,我鼓励您在脱机存储库中收集所需的依赖项,例如flatDir存储库:

repositories {
    flatDir name: 'offlineRepository', dirs: "C:/path/to/repository"
}
Run Code Online (Sandbox Code Playgroud)

遗憾的是,flatDir存储库不支持来自Maven文件等描述符文件的传递依赖.pom,但您也可以为本地文件系统位置定义mavenivy存储库:

repositories {
    maven {
        name = 'offlineRepository'
        url = uri('file:///c:/path/to/repository')
    }
}
Run Code Online (Sandbox Code Playgroud)

如果应该可以从在线和特定的脱机环境构建项目,您可以考虑在本地计算机上定义初始化脚本,用任何已定义的存储库替换您的脱机存储库.