从另一个应用程序启动测试项目

时间:2014-03-10 12:00:58

标签: java android android-intent android-testing

我为Android应用程序之一创建了一个测试项目。此测试项目还会创建包含一些内容的excel文件。现在,每次我必须运行应用程序,我必须连接我的设备并通过eclipse运行它。但是,我需要随时随地生成excel。

但是我的测试应用程序没有显示在启动器中(显然)。我只能看到安装的测试项目,设置 - >应用 - >全部。因此我甚至无法点击和发布。 (第一个问题)

我的方法:我想创建一个带有一个或两个按钮的单独的Android应用程序,并使用onClickListner事件调用测试应用程序。但同样,新的应用程序无法找到测试类。

这是我的代码:

private OnClickListener launchListener = new OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent(Intent.ACTION_MAIN);
            intent.setComponent(new ComponentName("com.org.search.test","com.org.search.test.MyTestClassName"));
            startActivity(intent);
        } 
    };

以下是例外日志:

03-10 17:05:44.185: E/AndroidRuntime(22195): FATAL EXCEPTION: main
android.content.ActivityNotFoundException: Unable to find explicit activity class      {com.org.search.test/com.org.search.test.MyTestClassName}; have you declared this activity in your AndroidManifest.xml?
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1628)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424)
at android.app.Activity.startActivityForResult(Activity.java:3390)
at android.app.Activity.startActivityForResult(Activity.java:3351)
at android.app.Activity.startActivity(Activity.java:3587)
at android.app.Activity.startActivity(Activity.java:3555)
at com.expedia.pb.activity.ScrapeActivity$2.onClick(ScrapeActivity.java:49)

添加Android Manifest file

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

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="17" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/PB_APP"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.pb.activity.ScrapeActivity"
            android:label="@string/PB_APP" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity  
            android:name="com.org.search.test.MyTestClassName">
        </activity>
    </application>

</manifest>

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

它表示您忘记在清单文件中声明com.org.search.test.MyTestClassName

确保您已清除了清单文件中的MyTestClassName活动,如下所示:

     <activity
        android:name=".MyTestClassName"
        android:label="@string/basic_map" />

答案 1 :(得分:0)

在测试活动中添加类别作为启动器。启动图标将显示在主屏幕中。

<activity
        android:name="com.pb.activity.ScrapeActivity"
        android:label="@string/PB_APP" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity  
        android:name="com.org.search.test.MyTestClassName">
 <category android:name="android.intent.category.LAUNCHER" />
    </activity>