android junit getApplication 为空,怎么回事?
public class CallServiceTest extends ServiceTestCase<CallService> {
public CallServiceTest() {
super(CallService.class);
}
@Override
public void setUp() throws Exception {
super.setUp();
getApplication().onLowMemory();
}
public void testSomething() throws Exception {
System.out.println("1");
assertEquals(1, 1);
System.out.println("2");
}
}
gradle:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile 'com.android.support:support-annotations:23.1.0'
androidTestCompile 'com.android.support.test:runner:0.4.1'
androidTestCompile 'com.android.support.test:rules:0.4.1'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2.1'
androidTestCompile 'com.android.support.test.espresso:espresso-web:2.2.1'
compile 'com.android.support:appcompat-v7:23.1.0'
testCompile 'junit:junit:4.12'
...
}
defaultConfig {
applicationId "com.revenco.av_talk"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
minSdkVersion 17
targetSdkVersion 18
versionCode 1
versionName "1.0"
}
testOptions {
unitTests.returnDefaultValues = true
}
//ADD THESE LINES:
packagingOptions {
exclude 'LICENSE.txt'
}
报的错:
java.lang.NullPointerException
at com.revenco.test.CallServiceTest.setUp(CallServiceTest.java:24)
at junit.framework.TestCase.runBare(TestCase.java:139)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:129)
at junit.framework.TestSuite.runTest(TestSuite.java:252)
at junit.framework.TestSuite.run(TestSuite.java:247)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:119)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
相关推荐
Dagger2Test
熟练掌握Dagger2将极大地提升Android应用的可维护性和可测试性。
Android账本APP实战:Room+ViewModel+Scoped Storage完整实现
Android移动应用开发中,本地数据持久化与UI状态管理是核心基础能力。基于Room数据库实现结构化存储、借助ViewModel与LiveData解耦业务逻辑、适配Android 11+ Scoped Storage规范,构成了现代安卓开发的标准技术栈。这类方案不仅保障数据一致性与生命周期安全,更支撑收支记账、实时统计、CSV导出等典型业务场景。本文聚焦可落地的账本APP案例,覆盖从Gradle配置、权限声明、DAO建模到RecyclerView高效渲染与文件安全共享的全流程,特别强化Room持久化和Sc
Android Studio校园二手交易App开发:从架构设计到毕业答辩全流程实战
移动应用开发是当前软件工程领域的核心技能之一,其关键在于理解客户端-服务端分离架构的原理与实现。这种架构模式通过RESTful API进行数据交互,实现了业务逻辑与数据管理的解耦,提升了应用的可扩展性和可维护性。在Android开发中,采用Kotlin语言结合ViewModel、LiveData等架构组件,能够高效地管理UI相关数据与生命周期。对于需要实时交互的应用场景,如校园二手交易平台,集成第三方即时通讯SDK是构建沟通模块的实用方案,能快速实现聊天功能,避免从零开发Socket通信的复杂性。本文以校园
Android商城App高分实战:Gradle构建与数据流设计
Android应用开发中,Gradle构建系统是连接代码与可运行APK的核心枢纽,其`build.gradle`配置直接决定API兼容性、模块依赖关系与构建可复现性;而现代数据流设计(如Retrofit+LiveData+Room)则保障UI响应及时、状态一致、缓存可靠。掌握`gradlew.bat`执行机制、`compileSdk/minSdk/targetSdk`协同配置、`implementation`依赖作用域划分,是实现工程化Android项目的基础能力。这些技术广泛应用于电商类App开发,尤其在
技术转移机构如何基于数据提升项目撮合精准度?.docx
技术转移机构如何基于数据提升项目撮合精准度?


