自创库依赖于另一个自创库
Self created library with dependency to another self created library
我正在尝试构建一个由单独的库项目组成的应用程序。
为此,我正在尝试制作一个概念证明,它应该如下所示:
我试图让项目尽可能简单。项目内容无关紧要!
重要的是项目之间的依赖关系!
结果应该是MainProject
会打印出Something Another String!
我已经尝试了从 .JAR 文件到 .AAR 文件的所有方法,但我得到的最好的是
与红色的依赖关系。我将 StringExtender.aar
文件添加到 StringReturner
,然后将 StringReturner.aar
文件添加到 MainProject
。
执行此操作时出现以下异常:
java.lang.NoClassDefFoundError: Failed resolution of: 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')
}
使用以下教程 - Creating libraries for Android applications
在我的 Github
上查看工作示例项目
采取的最重要的步骤是:
- 8.3。创建库模块。
- 8.6。定义对库项目的依赖。
不要忘记导入你要使用的库class,例如:
在 MainProject 中:导入 com.example.stringreturner.StringReturner。
在 StringReturner 中:导入 com.example.stringreturner.StringExtender。
以下信息基于您提供的图片:
库方法不是静态的,所以不要忘记制作一个实际的对象。
所以StringReturner应该做一个StringExtender对象,而MainProject应该先做一个StringReturner对象!
最后,我认为这是一个错字,但两个库都有 class StringReturner。由于显而易见的原因,这在 StringReturner 库中不起作用。
我还应该注意,我使用的是 Android Studio 2.0,我没有接触 .JAR 文件和 .AAR 文件。我只创建了两个库模块和一个应用程序。然后通过添加模块依赖项配置项目结构-> 依赖项。
我正在尝试构建一个由单独的库项目组成的应用程序。
为此,我正在尝试制作一个概念证明,它应该如下所示:
我试图让项目尽可能简单。项目内容无关紧要!
重要的是项目之间的依赖关系!
结果应该是MainProject
会打印出Something Another String!
我已经尝试了从 .JAR 文件到 .AAR 文件的所有方法,但我得到的最好的是
与红色的依赖关系。我将 StringExtender.aar
文件添加到 StringReturner
,然后将 StringReturner.aar
文件添加到 MainProject
。
执行此操作时出现以下异常:
java.lang.NoClassDefFoundError: Failed resolution of: 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')
}
使用以下教程 - Creating libraries for Android applications
在我的 Github
上查看工作示例项目采取的最重要的步骤是:
- 8.3。创建库模块。
- 8.6。定义对库项目的依赖。
不要忘记导入你要使用的库class,例如:
在 MainProject 中:导入 com.example.stringreturner.StringReturner。
在 StringReturner 中:导入 com.example.stringreturner.StringExtender。
以下信息基于您提供的图片:
库方法不是静态的,所以不要忘记制作一个实际的对象。 所以StringReturner应该做一个StringExtender对象,而MainProject应该先做一个StringReturner对象!
最后,我认为这是一个错字,但两个库都有 class StringReturner。由于显而易见的原因,这在 StringReturner 库中不起作用。
我还应该注意,我使用的是 Android Studio 2.0,我没有接触 .JAR 文件和 .AAR 文件。我只创建了两个库模块和一个应用程序。然后通过添加模块依赖项配置项目结构-> 依赖项。