【问题标题】:Why does Android Studio don't recognize .jar library imports?为什么 Android Studio 无法识别 .jar 库导入?
【发布时间】:2015-06-21 04:17:27
【问题描述】:

我正在尝试在我的 Android Studio 项目中使用一些 .jar 文件作为库。

我一直在研究如何做,常规的方法是将.jar文件复制到libs文件夹中,然后将其添加为库。我知道 libs 文件夹必须在“项目”视图中的“应用程序”模块内。但是没有出现添加为库的选项。所以我的方法是通过右键单击“应用程序”手动添加它:

打开 Module Settings/app/Dependencies/ 并添加 .jar 文件作为 文件依赖项。

然后,我转到我的 .class 但导入建议不允许我选择这些库作为导入。

我从“android”视图尝试了另一种方法。右键单击“应用程序”并选择“新模块”,在那里我选择 Import .JAR 或 .AAR Package 然后我从打开模块设置中执行与以前相同的操作,但这次我添加它作为模块依赖。

在展位方式中,更新了 gradle.build 文件添加了这些依赖项,但是当去活动选择导入时,我没有机会从这些中选择导入。

我已经花了一整天的时间试图解决这个问题,但我无法识别来自这些文件的导入,所以如果有人能告诉我我做错了什么或我在做什么,我将不胜感激错过了。

顶级 build.gradle 文件:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
         classpath 'com.android.tools.build:gradle:1.1.3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

应用级 build.gradle 文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.myapp"
        minSdkVersion 14
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets { main { res.srcDirs = ['src/main/res', 'src/main/res/values-v14'] } }

    packagingOptions {
        exclude 'META-INF/LICENSE.txt'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile project(':activation')
    compile project(':mail')
}

【问题讨论】:

  • 你的build.gradle在哪里?
  • 如果您在libs 中添加了.jars,那么compile fileTree(dir: 'libs', include: ['*.jar']) 会自动识别它
  • @MDI 知道应该是这样,但是由于某种原因,当我尝试导入一个类并且它让我在多个选择之间进行选择时,应该来自 jar 文件的那个不会出现。
  • 你的意思是来自Project Structure --> Dependency
  • 或者另一种方法是直接在build.gradle中添加compile files('libs/YourFile.jar')dependencies中,然后在Sync Gradle中添加Sync Gradle

标签: android jar android-studio


【解决方案1】:

与 M D 交谈后,我们得出结论,我的 AS 无法识别 .jar 文件,因此我不得不将项目移植回 eclipse,它在那里工作正常。

【讨论】:

  • Android Studio 绝对可以识别 jar 文件。如果它不起作用,那么肯定有其他问题。
  • @Shivama Verma,对于舒尔来说,其他方式会有很多人报告这个问题。无论如何,就我而言,我已经尝试了很多东西,但没有一个有效。所以也许我的 AS 版本有错误或其他问题,导致 AS 无法识别 .jar 文件。
  • @masmic 您使用哪个版本的 AS?我对 1.5.1 有同样的问题。我正在尝试使用 ksoap2 库,它在 SoapObject.request 行中给出“无法解析符号请求”
【解决方案2】:

我当前的项目使用 gson-2-2.4.jar 和 YouTubeAndroidPlayerApi.jar 等。要导入这些 jar,我将它放在我的 libs 文件夹中。之后,去 build.gradle 并删除其中的一些字符,并重写(1)。最后,单击“立即同步”(2)。我不知道为什么当我将 jar 添加到库时,我的同步按钮 不起作用,所以我这样做了,而且效果很好。

更新

在 Android 3.x.y 上,我们可以使用 Sync Project with Gradle FilesRefresh all Gradle projects

【讨论】:

  • 是的,我一直在使用 build.gradle 文件。每次在库中添加 .jar 时,我都会手动同步,但即使这样做,活动也无法识别导入。
  • :(哦,我没有其他答案来回答你的问题。很抱歉。
  • 这让我大吃一惊,为什么这行得通,点击“使用 Gradle 文件同步项目”不起作用。
【解决方案3】:

首先,我导入了这个 JAR,AS 无法识别这个 JAR,我无法导入。 然后我在这个 JAR 中按右键并选择“添加为库”。 AS可以识别这个JAR并解决问题!!

【讨论】:

    【解决方案4】:

    关于 Android Studio 1.5.1:

    您需要将 JAR 文件复制并粘贴到:

    APP_NAME/app/libs

    请注意,libs 文件夹已经存在。复制后,将项目视图从 Android 更改为项目文件。

    打开 app/libs 文件夹并右键单击 JAR 文件,然后单击添加为库。

    应该这样做。我无法成功使用添加模块导入 JAR 文件。

    【讨论】:

    • 实际上它更容易。进入File - New - New Module,从图片中选择“Import JAR/.AAR Package”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 2019-01-07
    • 2016-10-01
    相关资源
    最近更新 更多