相关疑难解决方法(0)

使用ant与库项目的Android单元测试

似乎最新的Android SDK工具仍然不能正确支持包含链接库项目的应用程序的测试.

我有一个项目,具有以下设置:

TestLib(android库项目)< - TestMain(android项目)< - TestMainTest(android单元测试项目)

我在eclipse中创建了所有这些项目,然后用于android update (test-/lib-)project ...生成build.xmlet.人.

一旦你在TestMain(InheritAddition.java在我的例子中)中有一个继承自TestLib(Addition.java)中的类并且你想在单元test(InheritAdditionTest.java)中引用这个类的类,问题就会开始.

TESTLIB

public class Addition {
    public int add2(int o1, int o2) {
      return o1 + o2;
    }
}
Run Code Online (Sandbox Code Playgroud)

TestMain

public class InheritAddition extends Addition {
    public int sub(int p1, int p2) {
        return p1 - p2;
    }
}
Run Code Online (Sandbox Code Playgroud)

TestMainTest

public class InheritAdditionTest extends AndroidTestCase {
    public void testSub() {
        Assert.assertEquals(2, new InheritAddition().sub(3, 1));
    }
}
Run Code Online (Sandbox Code Playgroud)

在命令行上构建时,结果如下:

W/ClassPathPackageInfoSource(14871): …

android unit-testing android-testing

21
推荐指数
2
解决办法
6688
查看次数

Android - Junit - 经过测试的项目使用外部Jar

我在一个库项目(LIB)中有一些java代码(很好地为Android编译),我想在另一个Android项目(A)中使用它.

由于LIB的代码不太可能发生太大的变化,我选择将其作为jar添加到A中.它工作正常.

我有另一个项目是Android检测项目,测试第一个Android项目(B).

所以我们现在拥有的是A,包括LIB作为外部jar,以及B测试A.

当我想从LIB编写的B代码访问时,问题就开始了.从我看到的情况来看,除非我将LIB作为外部jar添加到B,否则它拒绝编译(也就是说,它无法访问A中包含的LIB jar中的代码).

我不愿意将LIB作为外部jar添加到B中,因为:1.感觉不对,2.运行测试时,它失败了:

java.lang.IllegalAccessError:预验证类中的类ref已解析为意外实现

我找到了迈克的问题,但他的解决方案只涉及使用ant脚本进行编译,我目前更喜欢将Eclipse IDE用于此项目.

知道如何解决这个问题?

junit instrumentation android jar

9
推荐指数
1
解决办法
2277
查看次数

Android.App.Activity - 包不存在

我有一个应该正确编译的andorid项目文件.

我安装了最新的eclipse和Andriod ADT插件.

然后我导入了项目并右键单击build.xml以作为ANT构建运行.但是我在一些基本代码上遇到了错误,我确信这些错误源于我错误配置的设置.

我还尝试从命令行使用ANT运行它.两次我都遇到了同样的错误

怎么了 ?

    Buildfile: /Users/admin/Downloads/moshe-5/build.xml
    init:
    process.annotations:
        [javac] Compiling 9 source files to /Users/admin/Downloads/moshe-5/build/classes
        [javac] /Users/admin/Downloads/moshe-5/src/ti/moshe/CustomAdapter.java:7: package android.app does not exist
        [javac] import android.app.Activity;
        [javac]                   ^
        [javac] /Users/admin/Downloads/moshe-5/src/ti/moshe/CustomAdapter.java:8: package android.content does not exist
        [javac] import android.content.Context;
        [javac]                       ^
        [javac] /Users/admin/Downloads/moshe-5/src/ti/moshe/CustomAdapter.java:9: package android.graphics does not exist
        [javac] import android.graphics.Color;
Run Code Online (Sandbox Code Playgroud)

java eclipse ant android

7
推荐指数
1
解决办法
2万
查看次数

如何使用ant构建一个依赖于另一个应用程序的Android测试应用程序?

我有一个名为MyApp的模块,另一个名为MyAppTests的模块,它依赖于MyApp.两个模块都生成APK,一个名为MyApp.apk,另一个名为MyAppTests.apk.

我通常在IntelliJ或Eclipse中构建它们,但我想为它们创建一个ant构建文件,以便持续集成.

我使用"android update"为MyApp创建构建文件,并且由于commonsware对我之前的问题的回答,我已经能够使用ant成功构建它.

我现在想用ant构建MyAppTests.apk.我像以前一样使用"android update"构建了构建文件,但是当我运行它时,我得到一个错误,表明它没有在MyApp中找到任何类.

从我之前的问题中得到一个问题,我尝试将MyApp.apk放入MyAppTests/libs,但不幸的是,这并没有奇迹般地解决问题.

当它依赖于另一个APK中的类时,使用ant构建测试应用APK的最佳方法是什么?

$ ant debug
Buildfile: build.xml
    [setup] Project Target: Google APIs
    [setup] Vendor: Google Inc.
    [setup] Platform Version: 1.5
    [setup] API level: 3
    [setup] WARNING: No minSdkVersion value set. Application will install on all Android versions.

dirs:
     [echo] Creating output directories if needed...

resource-src:
     [echo] Generating R.java / Manifest.java from the resources...

aidl:
     [echo] Compiling aidl files into Java classes...

compile:
    [javac] Compiling 5 source files to /Users/mike/Projects/myapp/android/MyAppTests/bin/classes
    [javac] …
Run Code Online (Sandbox Code Playgroud)

ant android unit-testing

6
推荐指数
1
解决办法
4608
查看次数

当ant工作时,Eclipse给出了"转换为Dalvik格式失败"

我最近将我的SDK工具和ADT插件更新到最新版本(也获得了Android 2.3).这需要我的配置中的一些更改(主要是我添加proguard.config=procfg.txtdefault.properties我可以使用proguard的内置支持),并从中删除旧的proguard配置build.xml.现在,我的问题是Eclipse给出了一个相当冗长的错误(我将在问题的最后嵌入)问题是我最近没有添加任何库.再次,使用ant预期的工作进行编译:

$ ant debug
Buildfile: /home/felix/workspace/XXX/build.xml
    [setup] Android SDK Tools Revision 8
    [setup] Project Target: Android 2.3
    [setup] API level: 9
    [setup] 
    [setup] ------------------
    [setup] Resolving library dependencies:
    [setup] No library dependencies.
    [setup] 
    [setup] ------------------
    [setup] 
    [setup] WARNING: Attribute minSdkVersion in AndroidManifest.xml (4) is lower than the project target API level (9)
    [setup] 
    [setup] Importing rules file: tools/ant/main_rules.xml

-debug-obfuscation-check:

-set-debug-mode:

-compile-tested-if-test:

-dirs:
     [echo] Creating output directories if needed...

-pre-build:

-resource-src:
     [echo] …
Run Code Online (Sandbox Code Playgroud)

eclipse android

4
推荐指数
1
解决办法
9265
查看次数

Android - 使用Robot的Robotium使用Eclipse进行UI自动化

我正在尝试Android使用的项目运行我的UI测试Robotium,但每当我尝试从命令行或Eclipse运行它时,它会给我这个错误:

INSTRUMENTATION_RESULT: longMsg=java.lang.IllegalAccessError: 
    Class ref in pre-verified class resolved to unexpected implementation
Run Code Online (Sandbox Code Playgroud)

在logcat中,它还给出了一个错误,指出:

java.lang.NoClassDefFoundError: com.bridgepointeducation.talon.TalonModule
Run Code Online (Sandbox Code Playgroud)

即使我没有com.bridgepointeducation.talon.TalonModule.

有谁知道如何解决这个问题?谢谢!

android robotium

2
推荐指数
1
解决办法
2489
查看次数