14

我使用两台计算机进行编码。我的台式电脑和笔记本。我将两台计算机与 Dropbox 同步。如何在这两台计算机上导入/加载项目?每台计算机上的项目基础文件夹都不同。当我尝试加载/导入在另一台计算机上创建的项目时,它会加载项目,但我收到错误路径错误。

“Gradle“Test2Project”项目刷新失败:无法使用 Gradle 分发“ http://services.gradle.org/distributions/gradle-1.6.zip ”获取“IdeaProject”类型的模型。项目目录“C:\Users\thomas \AndroidStudioProjects\Test2Project" 不存在。"

错误的 pfad 是另一台计算机上的正确 pfad。如何导入 Android Studio 项目,以便它甚至可以在具有不同文件夹结构的另一台计算机上工作?

4

4 回答 4

3

使用 git,您可以使用 bitbucket.com 作为免费的远程存储库。

于 2013-06-28T18:47:33.537 回答
3

和其他人一样,我同意,使用 VCS 将是最好的解决方案。即使您可以尝试过滤所有与 android studio 相关的文件(如 *.iml、.idea 文件夹和 local.properties)。我不知道您是否可以使用 Dropbox 来执行此操作,或者您是否需要某种第三种软件。

之后,您应该能够在两台计算机上进行源代码更改而不会出现更大的问题。(您可能必须为 android studio 声明项目依赖项更改两次)依赖于 build.gradle 文件的构建应该可以工作。但同样:使用 VCS 是更好的方法。

于 2013-06-27T11:47:45.813 回答
1

这是我在尝试将 Android 项目存储在 Dropbox 文件夹中时遇到的问题。发生的情况是机器 1 的 IDE 将系统资源(如 SDK)映射为该机器的文件系统中。当您转到机器 2 时,除了您所期望的以外,一切都会正常工作——因为 SDK 可能会在不同的位置!

解决此问题的一种方法是使用您的 VCS(dropbox、git 等)作为 JUST 源文件的存储库,然后在每台机器上创建一个从 Dropbox 文件夹读取的本地项目。这需要两个独立的项目,它们映射不同,但具有相同的源文件夹。

当我尝试在 Mac 机器上的新安装上加载 Android 项目时,我发现了这个问题:

新的 Android Studio 安装想要重写 SDK 位置

你看到那里发生了什么吗?我的 Mac Android Studio 说:“嘿,我看不到“C:\Android\SDK 在哪里,但我确实看到你在不同的文件夹中有一个 Android SDK,所以我要更新你的项目文件以反映 SDK 的实际位置。”

在我看来,解决这个问题的唯一方法是在两台机器上创建您的项目,并对您的源和资产文件夹进行版本控制。如果您没有在每台机器上单独创建项目并且仅将 VCS 用于源和资产,那么解决构建和文件路径错误的唯一方法是将您的 SDK 存储在每台机器上的同一文件夹中。当我在 Windows 台式机和 Windows 笔记本电脑上构建时,这对我有用,但由于我使用的是 Macbook Pro,所以不再适用于我。

于 2016-10-16T21:24:37.903 回答
1

我知道大约 4 年前有人对此提出质疑,但到目前为止这仍然是一个问题。使用 VCS 似乎是一个很好的解决方案,但对我来说,这只是比我想要的更多的开销。我还使用 Dropbox 来同步我的文件夹,它们提供的历史记录足以满足我的私人编程需求。所以我认为,如果 android studio 简单地使用相对路径,那就太好了。

我知道它需要一些系统路径,并且在加载项目时查看 local.properties 并将其设置到正确的位置方面做得很好。

使用 Dropbox 的主要问题是构建目录。在这些目录中的文件中有许多对完全限定路径的引用。所以我的解决方案是从 Dropbox 同步中排除构建目录。

当您在笔记本电脑上工作、构建应用程序、创建新文件、更改文件或删除文件时,您的 PC 上的构建将在您切换回它时完全过时。但是当您在笔记本电脑上工作后第一次启动项目时,android studio 会认识到这一点并重新构建。

所以此时最大的问题是文件 local.properties,这由 android studio 正确处理。当构建系统不会在构建目录中的文件中写入完全限定的路径时,这可能是一个好主意(或者一个非常糟糕的主意,我不知道缺点)。

但到目前为止,这是我使用 Dropbox 而不是使用 VCS 的解决方案:

从 Dropbox 同步中排除构建路径

我希望这对某人有所帮助。

于 2017-08-24T17:14:50.587 回答