使用相同的库项目将多个Eclipse项目导入Android Studio而不会导致重复的模块?

时间:2016-02-02 13:58:46

标签: android eclipse android-studio android-studio-import

我有一个Eclipse项目结构,如下所示:

$('#colorpicker').farbtastic(function(hex){
$.throttle(250, true, LevelSliderValueChanged)
redpick = hexToRgb(hex).r;
greenpick = hexToRgb(hex).g;
bluepick = hexToRgb(hex).b;
console.log(hexToRgb(hex).r + " R")
console.log(hexToRgb(hex).g + " G")
console.log(hexToRgb(hex).b + " B")
Updatepick()   })

function hexToRgb(hex) {
console.log(hex +" in")
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
console.log(result +" split")

return result ? {
  r: parseInt(result[1], 16),
  g: parseInt(result[2], 16),
  b: parseInt(result[3], 16)
} : null;    

每个应用程序项目都使用MyApplicationProject1 MyApplicationProject2 MyApplicationProject3 MyLibraryProject MyLibraryProject1 MyLibraryProject2 MyLibraryProject3 ,后者又使用其他三个库项目。

将这些项目导入Android Studio时,它似乎首先按预期工作。直到我看一下Android Studio项目/模块文件夹。神圣的废话一团糟,我现在最终得到了一个看起来像这样的文件结构:

MyLibraryProject

换句话说 - 我的Eclipse库项目已经为每个应用程序项目复制了,这当然是荒谬的。 Android Studio开发人员怎么能认为我想要维护所有库项目的3个单独副本?

那么我该如何解决这个问题呢?我搜索并发现了一些主要涉及Android Studio导入过程的解决方案,这让我陷入了困境。我想要的只是能够拥有每个库项目的一个副本并将它们导入我的不同应用程序项目中。

顺便说一下,如果它有任何不同,我正在使用Mac OSx。

1 个答案:

答案 0 :(得分:1)

这是我最终做的事情:

  1. 我在Android Studio中创建了一个新的“虚拟”项目。

  2. 在Eclipse中,我从MyLibraryProject中删除了对所有库项目的引用,因此它们不会被Android Studio导入。

  3. 在虚拟项目中,我将我的库项目导入为模块(File-> New-> Import Module)

  4. 我将包含新模块的文件夹从项目文件夹移动到我的Android Studio项目根文件夹。

  5. 在Eclipse中,我从我的应用程序项目中删除了对MyLibraryProject的所有引用(在Project properties - > Android下),因此它不会被Android Studio导入。

  6. 我将Eclipse应用程序项目导入Android Studio(使用File-> New-> Import Project)

    我现在有一个看起来像这样的文件夹结构:

  7. Android Studio Projects
        MyApplicationProject1
        MyApplicationProject2
        MyApplicationProject3
        MyLibraryProject
        MyLibraryProject1
        MyLibraryProject2
        MyLibraryProject3
    

    1. 我在我的应用程序项目中编辑了settings.gradle文件,如下所示:
    2. include ':MyApplicationProject1'
      
      include ':MyLibraryProject'
      project(':MyLibraryProject').projectDir = new File(settingsDir, '../MyLibraryProject')
      
      include ':MyLibraryProject1'
      project(':MyLibraryProject1').projectDir = new File(settingsDir, '../MyLibraryProject1')
      
      include ':MyLibraryProject2'
      project(':MyLibraryProject2').projectDir = new File(settingsDir, '../MyLibraryProject2')
      
      include ':MyLibraryProject3'
      project(':MyLibraryProject3').projectDir = new File(settingsDir, '../MyLibraryProject3')
      

      1. 我编辑build.gradle的{​​{1}}文件,如下所示:
      2. MyLibraryProject

        1. 我编辑了模块dependencies { compile project(':MyLibraryProject1') compile project(':MyLibraryProject2') compile project(':MyLibraryProject3') } 文件(不是项目gradle文件)build.gradle,如下所示:
        2. MyApplicationProject1

          如您所见,我必须将所有库添加到项目dependencies { compile project(':MyLibraryProject') } 文件中。我尝试为MyLibraryProject创建一个新的settings.gradle文件,并在那里包含其他三个库项目/模块,但这不起作用。不过没什么大不了的。

          这种设置看起来像一个魅力,希望它可以帮助其他与此斗争的人。