我实施了一个名为" proximity"在Android Studio中生成一个" .aar"。我已将此作为模块添加到新测试项目中,如下所述:https://stackoverflow.com/a/24894387/2791503 此外,我将模块作为与传递标志的依赖关系包括在内,因为它已在此处提出:https://stackoverflow.com/a/25730092/2791503 这可以为新的TestProject grader文件:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile(project(':proximity')) {
transitive=true
}
当我启动应用程序时,它告诉我它无法找到一个Google Location API类,这是我的库模块的依赖项。
java.lang.NoClassDefFoundError:解析失败:Lcom / google / android / gms / common / api / GoogleApiClient $ Builder;
如何强制gradle包含我的库模块的传递依赖?
编辑: 这是原始库项目的gradle构建文件:
dependencies {
//integration tests
androidTestCompile 'com.android.support.test:runner:0.4.1'
// Set this dependency to use JUnit 4 rules
androidTestCompile 'com.android.support.test:rules:0.4.1'
// Set this dependency to build and run Espresso tests
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
// Set this dependency to build and run UI Automator tests
androidTestCompile 'com.android.support.test.uiautomator:uiautomator- v18:2.1.2'
androidTestCompile 'com.android.support:support-annotations:23.1.1'
//local unit testing
testCompile 'junit:junit:4.1'
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:23.1.1'
//estimote sdk
compile 'com.estimote:sdk:0.9.4@aar'
//google location api(GPS)
compile 'com.google.android.gms:play-services-location:8.4.0'
//Google Guave Java Util
compile 'com.google.guava:guava:18.0'
//custom BeSpoon library for android
compile project(':bespoonlibrary')
}
这是gradle构建文件在将库导入为引用aar的模块之后的样子:
configurations.create("default")
artifacts.add("default", file('app-release.aar'))
答案 0 :(得分:0)
所以我找到了一个适合我的解决方案,但我仍然不是我所希望的......所以如果有人有更好的解决方案,请告诉我。 无论如何,这可能会帮助某人: 我有两个库,一个外部库,库项目本身和一个内部libaray,它是外部库的依赖项。此外,每个库都有自己的依赖项,例如内部库引用google-location-service。
我尝试$(document).on("hover",".toolTip", function() {
var toolTip = $(this);
var toolTipMessage
var hoveringNow = toolTip.attr("data-hovering-now");
if(typeof hoveringNow !== typeof undefined && hoveringNow !== false) {
toolTip.removeAttr('data-hovering-now');
clearTimeout(toolTipMessage);
console.log('Timeout cleared');
}
else {
toolTip.attr('data-hovering-now', true);
toolTipMessage = setTimeout(showToolTip, 3000, toolTip.attr("data-tooltip"));
console.log('Timeout set');
}
});
function showToolTip(message) {
console.log(message);
}
生成外部库的* .aar文件。但是aar中的所有内容都是外部库,但没有内部库和所有其他依赖项。这个讨论说到目前为止还没有办法解决这个问题:
How to export AAR including its dependencies?
没有任何依赖,没有任何意义使用这个aar所以我必须找到另一种方式。在包含外部库的Android TestProject中,单击gradlew assemble
,所有依赖项都在那里,包括内部库。