从Eclipse迁移到Android Studio和库问题

时间:2015-05-12 16:49:52

标签: android eclipse android-studio gradle

我决定将我的项目从Eclipse迁移到Android Studio,我发现这样做有很多困难。我遇到的最大问题是:

我有几个使用一些常见项目(库)的应用程序。将应用程序导入Android Studio时,它会检测引用的库并将它们添加到应用程序中(复制应用程序文件夹下的库文件夹)。这是我不想做的事情,因为这些库对于1个以上的应用程序是通用的,所以我希望它们与应用程序文件夹位于同一目录级别,并且只是从应用程序引用它们。这是如何在Android Studio中完成的?在Eclipse中,您只需从项目属性中添加引用。此外,如何在Android Studio中导入库项目?我想将每个库作为单独的项目导入并单独构建它们。

有没有关于此的好教程?我在Eclipse方面有很多经验,但我对Gradle来说是全新的。

这是我的意思的一个例子:

我有两个项目,ProjectA和ProjectB。他们都使用我,LibA和LibB开发的一些图书馆项目。所有4个项目都在名为Applications的同一个文件夹下 - 因此这两个库是常见的,如果我更改其中一个,我只需要重新编译这两个项目。将ProjectA导入Android Studio(具有最新版本)后,导入过程创建了以下结构。在基本文件夹Studio Applications下,我有一个名为ProjectA的项目文件夹。在文件夹ProjectA下,我有另一个文件夹,ProjectA(主项目文件所在的文件夹)和另外两个文件夹,LibA和LibB。我想要的是将两个库项目单独导入(作为Android Studio中的库项目),并在主应用程序文件夹下只有ProjectA文件夹(以及其余的标准gradle文件夹,即.gradle,.idea) ,建立等)。

如何做到这一点?我需要两件事:首先,将Eclipse项目库项目导入Android Studio,然后导入项目,但不要在项目路径下复制库,而是引用它们。

2 个答案:

答案 0 :(得分:1)

只需导入你的应用程序没有项目库(我假设libs在maven中可用)

之后,您只需要在gradle文件中添加依赖项

// your gradle file inside your app folder
dependencies {
    compile 'com.squareup.okhttp:okhttp:2.3.0' // example of importing okhttp
    compile 'com.facebook.android:facebook-android-sdk:4.1.1' // example importing facebook sdk
    compile project(':name_of_local_project') // local project
}

如果你想包含另一个文件夹(不同项目)的项目

将其添加到settings.gradle

project(':module1').projectDir = new File(settingsDir, '../another_path')

这是一种更简单的方法,您可以在没有太多工作的情况下更新lib

答案 1 :(得分:0)

问题在于我也为库模块启用了proguard。 Proguard在库模块中混淆了类和函数名称,并且在引用它们的应用程序中找不到它们。在应用程序中移动/合并proguard文件是解决方案。