我正在尝试构建一个应用程序,它由不同的库项目组成。
为此,我要做一个概念证明,它应该如下:
android - 自己创建的库,依赖于另一个自己创建的库-LMLPHP
我尽力使这个项目尽可能简单。项目内容无关紧要!
重要的是项目之间的依赖关系!
结果应该是MainProject将打印出Something Another String!
从.jar文件到.aar文件我都试过了,但我得到的最好的结果是
红色的依赖关系。我将StringExtender.aar文件添加到StringReturner,然后将StringReturner.aar文件添加到MainProject
当我这样做时,我会得到以下异常:
java.lang.NoClassDefFounderror:解析失败:lcom/example/erik/stringExtender/stringExtender;
什么是建立这样一个简单的概念证明的正确方法?我似乎找不到与具有依赖关系的库项目相关的任何内容。都是一级深!
欢迎任何帮助!
编辑显示渐变生成文件
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')
}

MainProject:
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')
}

最佳答案

使用以下教程-Creating libraries for Android applications
查看myGithub上的工作示例项目
所采取的最重要步骤是:
8.3。创建库模块。
8.6。定义对库项目的依赖关系。
不要忘记导入要使用的库类,例如:
在mainproject中:import com.example.stringreturner.stringreturner。
在StringReturner中:导入com.example.StringReturner.StringExtender。
以下信息基于您提供的图像:
库方法不是静态的,所以不要忘记创建一个实际的对象。
所以StringReturner应该创建一个StringExtender对象,而MainProject应该首先创建一个StringReturner对象!
最后,我认为这是一个错误,但两个库都有stringreturner类。这在StringReturner库中不起作用,原因很明显。
我还应该注意到,我使用的是android studio 2.0,我没有接触到.jar文件和.aar文件。我只创建了两个库模块和一个应用程序。然后通过添加模块依赖项来配置项目结构->依赖项。

10-08 18:11