Android - 启动不扩展Activity的新活动?

时间:2014-12-18 04:18:48

标签: android android-intent android-activity processing

我正在尝试从MainActivity运行Processing类。我相信我正在正确运行我的意图,但我得到了错误:

12-17 22:53:44.221: E/AndroidRuntime(1904): FATAL EXCEPTION: main
12-17 22:53:44.221: E/AndroidRuntime(1904): Process: bard.edu.focus2, PID: 1904
12-17 22:53:44.221: E/AndroidRuntime(1904): android.content.ActivityNotFoundException: Unable to find explicit activity class {bard.edu.focus2/bard.edu.focus2.ProcessingInterface}; have you declared this activity in your AndroidManifest.xml?
12-17 22:53:44.221: E/AndroidRuntime(1904):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1628)
12-17 22:53:44.221: E/AndroidRuntime(1904):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424)
12-17 22:53:44.221: E/AndroidRuntime(1904):     at android.app.Activity.startActivityForResult(Activity.java:3424)

该类在我的清单中声明:

<activity
        android:name="edu.bard.focus2.ProcessingInterface" 
        android:parentActivityName="edu.bard.focus2.MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.DEFAULT" />
        </intent-filter>        
</activity>    

这是我的意图:

runFocus = (Button)findViewById(R.id.buttonProcessing);
    runFocus.setOnClickListener(new OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
                Intent intent = new Intent(MainActivity.this,ProcessingInterface.class);
                startActivityForResult(intent,START_PROCESSING);
        }
     }

事情是我的处理类(它自己正常运行)扩展了PApplet而不是Activity,它可能是错误的起源。 如果我是对的,我该怎么做才能解决它? 如果没有,有什么建议吗?

谢谢!

3 个答案:

答案 0 :(得分:0)

据我所知,您必须延长Activity,否则它无法正常工作 - 不是Context,不是。 。 。 。好吧,很多很多东西。尝试方法in this tutorial instead。它将指导您使用特殊的Android启用的Processing版本。

答案 1 :(得分:0)

您没有在Manifest文件中添加新创建的Activity。 在标记

之前在清单文件中添加以下代码
 <activity android:name=".newclassname" >
        </activity>

  <activity android:name="packagename.newclassname" >
            </activity>

答案 2 :(得分:0)

我猜你根据你的日志给出了错误的包名。

变化:

<activity
        android:name="edu.bard.focus2.ProcessingInterface" 
        android:parentActivityName="edu.bard.focus2.MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.DEFAULT" />
        </intent-filter>        
    </activity>    

<activity
        android:name="bard.edu.focus2.ProcessingInterface" 
        android:parentActivityName="bard.edu.focus2.MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.DEFAULT" />
        </intent-filter>        
    </activity>    

或者,如果您的主要包装名称是bard.edu.focus2,那么您可以简单地写一下:

 <activity
            android:name=".ProcessingInterface"
            >
        </activity>