【问题标题】:Android external library issueAndroid外部库问题
【发布时间】:2015-02-07 21:04:25
【问题描述】:

我正在尝试将现有的 Android 项目用作我的应用程序的库:

https://github.com/LarsWerkman/HoloColorPicker

java 代码可以编译,但是当我运行我的应用程序时出现以下错误:

java.lang.ClassNotFoundException: Didn't find class
"com.larswerkman.colorpicker.ColorPicker" on path: 
DexPathList[[zip file "data/app/myApp.apk"], nativeLibraryDirectories=
[/data/app-lib/myApp, /system/lib]]

我知道我不是第一个解决这个异常的人,但我真的没有灵感了。我尝试了以下方法:

  • 将项目包含在属性 -> Android -> 添加...
  • 将项目包含在 Java 构建路径 -> 项目 -> 添加...
  • 在 Java 构建路径 -> 排序和导出中标记项目
  • 在 Java 构建路径中包含 .jar -> 库 -> 添加 JAR

这些都不能解决问题。我想知道将项目包含为库的正确方法是什么。

此外,ColorPicker 项目的文档说我将它作为依赖项包含在某处:

dependencies {
    compile 'com.larswerkman:HoloColorPicker:1.4'
}

我应该在哪个文件中包含这个?

【问题讨论】:

  • 你的项目使用 gradle 吗?
  • 如果您使用的是 gradle,我们需要查看您的整个 build.gradle 我认为,您很可能缺少 mavenCentral() 定义
  • 我现在不使用 gradle。我是不是该?顺便说一句,我仍在使用 eclipse
  • 是的,您应该开始使用 Android Studio。 ADT 插件不再处于积极开发阶段。

标签: java android android-library


【解决方案1】:

您应该将其包含在应用程序的 build.gradle 文件中。

这就是 build.gradle 想要的样子:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.android.support:recyclerview-v7:+'
    compile 'com.android.support:support-v4:+'
    compile 'com.larswerkman:HoloColorPicker:1.4'
}

如上所示,我已经包含了 HoloColorPicker 库。

【讨论】:

    猜你喜欢
    • 2014-09-16
    • 2012-12-02
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-17
    • 2011-10-14
    • 1970-01-01
    相关资源
    最近更新 更多