java – Android数据绑定测试在模块NoClassDefFoundError中失败
发布时间:2020-12-15 02:18:39 所属栏目:Java 来源:网络整理
导读:我无法在使用 android数据绑定库的Module中运行本地单元测试. 首先让我讲述项目结构如何配置. project | app -MainLauncherActivity | myLibrary -CommonModuleActivity 我创建了一个新项目,之后添加了一个新模块“myLibrary”. 主“app”取决于“myLibrary
我无法在使用
android数据绑定库的Module中运行本地单元测试.
首先让我讲述项目结构如何配置. project | app -MainLauncherActivity | myLibrary -CommonModuleActivity 我创建了一个新项目,之后添加了一个新模块“myLibrary”. 主“app”取决于“myLibrary”模块.我在“myLibrary”中添加了一个活动,它支持数据绑定.我在点击按钮时从主“app”活动调用了模块特定活动.它只是工作,能够运行应用程序. 但是,当我为模块活动添加测试用例时,获得以下错误. AndroidStudio:2.3 Gradle build tools version 2.3.0 --> Error:java.lang.NoClassDefFoundError: android/databinding/DataBinderMapper Gradle build tools version 2.2.3 --> Error:java.lang.NoClassDefFoundError: android/databinding/ViewDataBinding PROJECT IDE SCREENSHOT 项目根gradle文件: // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() } dependencies { //classpath 'com.android.tools.build:gradle:2.3.0' classpath 'com.android.tools.build:gradle:2.2.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir } 下面是“app”build.gradle: apply plugin: 'com.android.application' android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.example.bindingtest" minSdkVersion 21 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' } } dataBinding { enabled true } } dependencies { compile 'com.android.support:appcompat-v7:25.1.0' //compile 'com.android.support.constraint:constraint-layout:1.0.0-beta4' testCompile 'junit:junit:4.12' compile project(':mylibrary') } 在myLibrary build.gradle下面: apply plugin: 'com.android.library' android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { minSdkVersion 21 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' } } dataBinding { enabled true } } dependencies { compile fileTree(dir: 'libs',include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2',{ exclude group: 'com.android.support',module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.1.0' testCompile 'junit:junit:4.12' testCompile "org.mockito:mockito-core:1.10.19" } LibraryActivity: public class MyLibraryActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivityMyLibraryBinding binding = DataBindingUtil.setContentView(this,R.layout.activity_my_library); //set data to binding } } 相应的测试用例可以在附带的截图中找到. 有人可以告诉我,我在这里做错了什么来测试它. APP工作正常,只有单位测试失败! 解决方法
我认为这是一个已知问题,您可以查看
here.我从2月开始就一直在跟踪此问题.似乎还没有修复.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |