我正在尝试为现有应用程序编写一些测试.我想为测试提供一个测试应用程序类,我按照这里的例子,因为我也使用Dagger进行DI.
但是,如果测试中的活动是ActionBarActivity,我会收到以下异常:
java.lang.IllegalArgumentException: android.content.pm.PackageManager$NameNotFoundException: ComponentInfo{mypackage.view.activity/mypackage.view.activity.MyActivity}
at android.support.v4.app.NavUtils.getParentActivityName(NavUtils.java:282)
at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:116)
at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:57)
at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98)
at mypackage.view.activity.MyActivity.onCreate(MyActivity.java:68)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.test.ActivityUnitTestCase.startActivity(ActivityUnitTestCase.java:158)
at mypackage.MyActivityTest.test(MyActivityTest.java:89)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)
Caused by: android.content.pm.PackageManager$NameNotFoundException: ComponentInfo{mypackage.view.activity/mypackage.view.activity.MyActivity}
at android.app.ApplicationPackageManager.getActivityInfo(ApplicationPackageManager.java:242)
at android.support.v4.app.NavUtils.getParentActivityName(NavUtils.java:298)
at android.support.v4.app.NavUtils.getParentActivityName(NavUtils.java:279)
... 21 more
Run Code Online (Sandbox Code Playgroud)
我的测试类如下所示:
public class MyActivityTest extends ActivityUnitTestCase<MyActivity> {
...
public MyActivityTest() {
super(MyActivity.class);
}
private Context context;
private TestBaseApplication application;
@Override
protected void setUp() throws Exception {
super.setUp(); …Run Code Online (Sandbox Code Playgroud) android unit-testing android-testing android-actionbaractivity
我正在尝试将一个简单的Facebook个人资料图片请求功能实现到正在使用Libgdx引擎开发的游戏中.我想获得所需的图片,并最终在屏幕上显示.我希望这可以在我的桌面和Android实现上工作.
当我尝试使用配置文件图片创建Pixmap对象时会出现问题,因为配置文件图片是渐进式jpeg,libgdx无法加载.示例代码:
inStream = new URL(url).openStream();
byte[] buffer = new byte[1024 * 200];
int readBytes = 0;
while (true) {
int length = inStream.read(buffer, readBytes, buffer.length - readBytes);
if (length == -1)
break;
readBytes += length;
}
Pixmap pixmap = new Pixmap(buffer, 0, readBytes);
Run Code Online (Sandbox Code Playgroud)
由于图像是下载的图像,我没有选择使用软件将图像转换为常规的jpeg或png格式.我已经尝试使用ImageIO软件包(在其他一些软件包中)解码图像,但它也无法处理渐进式jpeg.我无法找到适用于这两种平台的解决方案.
有什么建议可以解决这个问题?至少,如果我可以为Android处理它,也许我可以想到桌面实现的其他东西.
我们有几个 Firebase 项目,它们通过构建类型和风格共享相同的代码库。我们的目标是通过 Gradle 使用应用程序分发并使用服务帐户凭据进行身份验证。
在文档中,显示firebaseAppDistribution可以使用 block 来配置参数,服务凭证文件路径就是其中之一。由于每个变体都是一个 Firebase 项目并且每个项目都有自己的服务凭证,据我所知,我们需要在 Gradle 配置中指向单独的服务凭证文件路径。
我试图根据变体使用 gradle 任务更新文件路径,但无法使其工作。当前构建文件如下所示:
...
apply plugin: 'com.google.firebase.appdistribution'
class StringExtension {
String value
StringExtension(String value) {
this.value = value
}
public void setValue(String value) {
this.value = value
}
public String getValue() {
return value
}
}
android {
...
productFlavors.whenObjectAdded {
flavor -> flavor.extensions.create("service_key_prefix", StringExtension, '')
}
productFlavors {
flavor1 {
...
service_key_prefix.value = "flavor1"
}
flavor2 {
...
service_key_prefix.value = "flavor2"
}
} …Run Code Online (Sandbox Code Playgroud)