依赖于另一个自创建库的自创建库

Posted

技术标签:

【中文标题】依赖于另一个自创建库的自创建库【英文标题】:Self created library with dependency to another self created library 【发布时间】:2016-07-24 04:20:29 【问题描述】:

我正在尝试构建一个由单独的库项目组成的应用程序。

为此,我正在尝试制作一个概念证明,它应该如下所示:

我试图让项目尽可能简单。项目内容无所谓! 重要的是项目之间的依赖关系

结果应该是MainProject会打印出Something Another String!

我已经尝试了从 .JAR 文件到 .AAR 文件的所有文件,但我得到的最好的是 红色的依赖关系。我将StringExtender.aar 文件添加到StringReturner,然后将StringReturner.aar 文件添加到MainProject

当我这样做时,我得到以下异常:

java.lang.NoClassDefFoundError: 解析失败:Lcom/example/erik/stringextender/StringExtender;

设置这样一个简单的概念证明的正确方法是什么?我似乎找不到与具有依赖关系的库项目相关的任何内容。都是1级深!

欢迎任何帮助!

编辑显示 GRADLE 构建文件StringReturner:

apply plugin: 'com.android.library'

android 
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

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


dependencies 
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.2.1'
    compile project(':StringExtender-lib-debug')

主项目:

apply plugin: 'com.android.application'

android 
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

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


dependencies 
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.2.1'
    compile 'com.android.support:design:23.2.1'
    compile project(':StringReturnerLib-debug')

【问题讨论】:

@MsYvetteǝʇʇǝʌʎsW 完成! 【参考方案1】:

使用以下教程 - Creating libraries for Android applications

在我的 Github 上查看一个工作示例项目

采取的最重要的步骤是:

8.3。创建库模块。 8.6。定义对库项目的依赖关系。

不要忘记导入你要使用的库类,例如: 在 MainProject 中:导入 com.example.stringreturner.StringReturner。 在 StringReturner 中:导入 com.example.stringreturner.StringExtender。

以下信息基于您提供的图片:

库方法不是静态的,所以不要忘记创建一个实际的对象。 所以 StringReturner 应该先做一个 StringExtender 对象,而 MainProject 应该先做一个 StringReturner 对象!

最后,我认为这是一个错字,但两个库都有 StringReturner 类。由于显而易见的原因,这在 StringReturner 库中不起作用。

我还应该注意,我使用的是 Android Studio 2.0,我没有接触 .JAR 文件或 .AAR 文件。我只创建了两个库模块和一个应用程序。然后通过添加模块依赖配置项目结构->依赖。

【讨论】:

以上是关于依赖于另一个自创建库的自创建库的主要内容,如果未能解决你的问题,请参考以下文章

自创“乒乓球自嗨玩法”

别惹农夫怎么快速获得自创农场

一些诗集-自创+整理

一些诗集-自创+整理

一些诗集-自创+整理

push_back 通过自创对象获取最后一个元素的向量