English 中文(简体)
无法解决下列活动:仪器检测和roid活动
原标题:Unable to resolve activity for: Intent when instrumentation-testing android activities

当I m试图对甲状腺进行饱和测试时,我会发现错误。 我撰写了题为“AudioPlayerActative的活动,内容是:com.mycompany.mobile.android.gui,现在Im试图测试该项目的全球倡议,Im在以下错误中:

java.lang.RuntimeException: Unable to resolution activity for: Intent{ act=android.intent.action.MAIN flg=0x10000000 cmp=com.mycompany.mobile.android.gui/.AudioPlayerActative }

我读到,并遵循了建议,但没有结果。 我还对错误感到厌恶,但找不到任何帮助。

This is how my AndroidManifest.xml for the test project looks like:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mycompany.mobile.android.gui"
    android:versionCode="1"
    android:versionName="1.0" >

    <instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.mycompany.mobile.android.gui" />
    <application>
        <uses-library android:name="android.test.runner" />
    </application>

    <uses-sdk android:targetSdkVersion="7" />
    <supports-screens android:anyDensity="true" />
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>

这里是我的仪器测试。

a. 包裹。

import android.test.ActivityInstrumentationTestCase2;

import com.mycompany.mobile.android.gui.AudioPlayerActivity;

public class TestMusicPlayerActivityTest extends ActivityInstrumentationTestCase2<AudioPlayerActivity> {
    public TestMusicPlayerActivityTest() {
            super("com.mycompany.mobile.android.gui", AudioPlayerActivity.class);
    }

    public TestMusicPlayerActivityTest(String name) {
        super("com.mycompany.mobile.android.gui", AudioPlayerActivity.class);
    }

    public TestMusicPlayerActivityTest(String pkg, Class<AudioPlayerActivity> activityClass) {
        super("com.mycompany.mobile.android.gui", AudioPlayerActivity.class);
    }

    public void testSomething() {
        System.out.println("Nothing works :(");
        System.out.println(getActivity());
    }   
}

我们正在通过ven夜进行整个进程,但这不应成为问题的一部分。

如你所看到的那样,测试的活动也属于同一一揽子活动。 我不把活动称为超级建筑商,而不用说一揽子名称,因为大多数有这一问题的人都这样做。

为您的利益,这是介绍测试活动:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mycompany.mobile.android.gui"
    android:versionCode="1"
    android:versionName="1.0" >

    <!-- omitted Uses permission + Uses SDK -->
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:debuggable="true"
        android:theme="@style/NoTitleBar"
    >
    <!-- omitted other activities -->
        <activity 
            android:name="com.mycompany.mobile.android.gui.AudioPlayerActivity"
            android:screenOrientation="portrait" ></activity>
    </application>
</manifest>

我也把这项活动添加到安伯尼费斯克斯梅尔,但这只是一纸空文。 我也试图为所期望的活动增加MAIN/LAUNCHER的意向过滤器,但这并没有改变试验的结果。 我尝试以额外行动开始活动,没有额外资金,结果也没有改变。

最佳回答
<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.mycompany.mobile.android.gui"
... ...

你们是否使用安的安乐项目和安的测试项目相同的成套名称? 这可能是一个问题,尽管我无法确定它是否造成你的 j。 执业。

http://developer.android.com/guide/topics/testing/testing_android.html#PackageNames”rel=“noreferer” 。 你的测试项目必须具有与经测试的项目不同的一揽子名称:

安套名称是一个独特的系统名称,由包裹中元素的“同化:包装”特性确定。 <> 测试包的安套名称必须不同于测试申请的安套名称。 default式仪器在测试申请的包装名称上用“测试”的方式制造了测试包。

使用包裹名称 com.mycompany.mobile.android.gui.test for their test project.

问题回答

有两个可能的解决办法。

  1. Add activity definition in the android manifest and mark it as exported.

如果你想界定你和roid物中的活动,你就会“无法解决活动错误”。 如果你在你和roid测试项目中开展单独的测试活动,就建立一个单独的测试子包,并在那里开展你的活动。 之后将其列入你和roid的标识,并标明出口。

# folder structure
└── src
    └── androidTest
        └── java
            └── com
                └── example
                    └── test
                        └── TestActivity.kt

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.example.test">
  <application>
     <activity
       android:name=".TestActivity"
       android:exported="true" />
  </application>
</manifest>

default Gra Gra Gra gin p p p Id and namespace of the test app. 因此,你需要把你的所有班子放在单独的测试包中。

  1. Change android test namespace and the applicationId.

页: 1 模块级测试仪器的Id>。 把它与你的测试相匹配。

android {
  testNamespace  com.example.app 
  defaultConfig {
     testApplicationId  com.example.app 
  }
}

It is recommended to use same values for the namespace and the applicationId. If you use different values, the android Gradle plugin will copy applicationId in place of namespace in the android manifest.

你们正在把这个项目作为安乐器项目运行,并尝试把它作为安乐器测试项目运行。

粘合剂——包装和提炼;java包装;-w <测试一个pk包和大体;/android。 仪器





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签