我正在使用Android Studio来编写和运行我的Android应用程序,但是当我尝试通过意图从一个活动转到另一个活动时遇到此错误,我得到此错误:
android.content.ActivityNotFoundException: Unable to find explicit activity class
{com.example.rudrunk/junit.framework.Test}; have you declared this activity in your
AndroidManifest.xml?
或NullPointerException如果我使用其他意图。
我的清单文件如下,但所有代码都自动来自IDE,所以我不明白发生了什么。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.rudrunk"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<application android:theme="@style/AppTheme" android:label="@string/app_name" android:icon="@drawable/ic_launcher" android:debuggable="true" android:allowBackup="true">
<activity android:label="@string/app_name" android:name="com.example.rudrunk.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:label="@string/title_activity_test" android:name="com.example.rudrunk.Test" />
<activity android:label="@string/title_activity_drunk_test" android:name="com.example.rudrunk.DrunkTest" />
</application>
意图的Java代码:
final Intent localIntent1 = new Intent(MainActivity.this, DrunkTest.class);
final Intent localIntent2 = new Intent(MainActivity.this, Test.class);
Button localButton1 = (Button)findViewById(R.id.maybe);
Button localButton2 = (Button)findViewById(R.id.yes);
localButton1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View paramAnonymousView)
{
startActivity(localIntent1);
}
});
localButton2.setOnClickListener(new View.OnClickListener()
{
public void onClick(View paramAnonymousView)
{
Intent localIntent = new Intent("android.intent.action.CALL");
localIntent2.setData(Uri.parse("tel:16097212155"));
startActivity(localIntent2);
}
});
答案 0 :(得分:1)
似乎Test.class
已被解析为junit.framework.Test
而不是您的活动。这可能是一个错误的导入(import junit.framework.Test;
?),但使其工作的可靠方法是使用完整的类名,即
new Intent(MainActivity.this, com.example.rudrunk.Test.class);
在任何情况下,它都应该与AndroidManifest文件中的类名相匹配。