由于安全原因,我的项目需要在离线模式下工作,没有任何互联网连接。我的androidStudio定义为脱机模式。当我通过任务/构建/组装运行汇编发行版时,所有工作都很好,我构建了我的apk。但是当通过命令行命令运行时:
gradlew --offline assembleRelease
我得到了很多错误,比没有兑现版本的这个和那个。当我修复一个错误并复制一些文件来缓存时,我就会得到其他一些遗漏的新错误。
那么,assembleRelease如何通过androidStudio工作呢?如何通过cmd或远程运行相同的命令,因为它似乎拥有所需的所有缓存。从studio从cmd运行assembleRelease有什么区别?
此外,我知道简单的解决方案,运行一次在线,然后它的工作。不能这么做..。
由于我的个人电脑是能够建立APK的总体,我怎么能这样做没有androidStudio只是通过cmd或远程?
发布于 2018-07-01 02:33:13
首先,让我感到惊讶的是,您可以使用Android构建您的项目,但不能直接调用Gradle。不同的Gradle版本可能是原因之一,但由于您已经使用了Gradle包装器,这是不太可能的。也许Android没有配置为使用包装器。
但是,我坚决建议不要在不同系统的Gradle缓存之间复制依赖项。相反,我鼓励您在离线存储库(例如 repository )中收集所需的依赖项。
repositories {
flatDir name: 'offlineRepository', dirs: "C:/path/to/repository"
}
遗憾的是,flatDir
存储库不支持来自描述符文件(如Maven .pom
文件)的传递依赖关系,但您也可以为本地文件系统位置定义maven
或ivy
存储库:
repositories {
maven {
name = 'offlineRepository'
url = uri('file:///c:/path/to/repository')
}
}
如果可以同时从联机环境和特定脱机环境构建项目,则可以考虑在本地计算机上定义初始化脚本,该脚本可以用脱机存储库替换任何定义的存储库。
https://stackoverflow.com/questions/51076611
复制