将项目移植到AndroidStudio时如何使用旧的.jar文件?

时间:2015-12-16 01:49:37

标签: android android-studio gradle

我能够创建一个新的AndroidStudio项目并将旧代码移植到它。

但是现在我得到了一些关于某些库的编译错误,如Flurry无法识别。

请参阅此屏幕截图,其中Flurry的引用为红色:

enter image description here

这就是我以前的旧版.jars:

enter image description here

我需要什么方式移植罐子?现在应该通过Gradle处理吗?我该怎么办?现在我的Gradle文件如下所示:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "problemio.com.problemionew"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
}

我应该添加如下行:

compile 'com.android.support:acra-4.2.3'
compile 'com.android.support:android-support-v4'
compile 'com.android.support:FlurryAgent'
compile 'com.android.support:gcm-server'
compile 'com.android.support:gcm'

2 个答案:

答案 0 :(得分:2)

如果您想将罐子添加到项目中,请将您的罐子移到libs文件夹和成绩档案中,执行以下操作:

compile files 'your.jar.file.name.here.jar'

为您要导入的每个jar。

这应该可以解决问题。

文件夹看起来像:

folder heirarchy

然后依赖块看起来像:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.1'

    compile files('libs/android_antlib_4-12-0.jar')
}

答案 1 :(得分:2)

如果您想继续使用这些罐子,请在行

指示的目录中找到它们
compile fileTree(dir: 'libs', include: ['*.jar'])

这会编译位于jar文件夹中的所有libs文件,其中libs文件夹直接位于app文件夹中:

A screenshot showing the location of the libs folder relative to the app folder

如果要交换存储在远程maven存储库(例如jCenter或Maven Central)中的依赖关系版本,那么您可以使用在问题末尾列出的单独compile语句并让Gradle执行努力工作。但是,您需要为每个依赖项指定一些版本信息;请参阅compile 'com.android.support:design:23.1.1'以获取完全指定的依赖项版本的正确格式。