Android 安卓错误“;找不到显式活动类“;
我有一个android项目,有几个软件包。在本例中,包的结构是com.WAPP.SetLocation是包含我要运行的活动的包 在我的清单中,com.WAPP被视为基本包:Android 安卓错误“;找不到显式活动类“;,android,android-activity,android-manifest,Android,Android Activity,Android Manifest,我有一个android项目,有几个软件包。在本例中,包的结构是com.WAPP.SetLocation是包含我要运行的活动的包 在我的清单中,com.WAPP被视为基本包: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.WAPP" android:versionCode="1" android:versionName="1.0">
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.WAPP"
android:versionCode="1"
android:versionName="1.0">
如果我没有弄错的话,
i.setClassName(“com.WAPP.SetLocation”、“com.WAPP.SetLocation.setLocationActivity”)
应该是i.setClassName(getBaseContext(),“setLocationActivity”)代码>
还可以尝试以下语法:
startActivity(new Intent(MyActivity.this, setLocationActivity.class));
并尝试从以下位置删除起始点:
<activity android:name=".SetLocation.setLocationActivity"></activity>
第一个参数是应用程序包而不是活动所在的包
您可以这样调用活动
Intent i = new Intent();
i.setClassName("com.WAPP",
"com.WAPP.SetLocation.setLocationActivity");
startActivity(i);
正如Sylarr建议的那样,最好让Android自动为您解决这个问题。因此被称为
startActivity(new Intent(this, setLocationActivity.class));
根据java标准,建议将包名全部小写,并将类名设置为CamelCased。通过以下方式执行:
Intent intent = new Intent();
intent.setComponent(
new ComponentName("com.WAPP", "com.WAPP.SetLocation.setLocationActivity"));
startActivity(i);
如果新活动与MainActivity不在同一个数据包中(您从这里调用?),请尝试在清单上声明
<activity android:name="com.WAPP.SetLocation.setLocationActivity"></activity>
<application
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true">
<activity android:name=".mainScreenActivity"></activity>
<activity android:name=".SetLocation.setLocationActivity"></activity>
</application>
希望这有帮助 除了上述答案之外,还要确保在清单中的应用程序中声明您的活动
<activity android:name="com.WAPP.SetLocation.setLocationActivity"></activity>
<application
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true">
<activity android:name=".mainScreenActivity"></activity>
<activity android:name=".SetLocation.setLocationActivity"></activity>
</application>
在您的清单中,您将其声明为
.SetLocation.setLocationActivity
但是
包名为com.WAPP.SetLocation
所以你需要再加一次前缀
Intent i = new Intent();
i.setClassName("com.WAPP.SetLocation",
"com.WAPP.SetLocation.SetLocation.setLocationActivity");
startActivity(i);
在XamarinAndroid中,确保您的Activity类具有Activity属性
[Activity(Theme = "@style/MyTheme")]
public class MyActivity : ActivityBase
{
...
}
这样,您就可以确保您的活动已在AndroidManifest.xml中注册了。我在项目中遇到了同样的问题。这几乎浪费了我一整天的时间。我尝试了上面提到的所有解决方案,但没有一个对我有效。
经过所有的艰苦工作,我只是“重建”项目和“清理”项目,它工作得很好。
注:
在完成所有过程之前,您只需要尝试一下这些选项。这可能是因为没有在清单中注册下一个活动XML文件。在AndroidManifest.XML文件中注册下一个活动XML文件
希望有帮助。首先,确保您创建了活动,而不是类。如果是活动,则转到manifest.xml文件,查看该特定文件的路径
这对我来说绝对有效
这是供参考的如果使用ImageView,可能会出现问题:(
您的类名可能是Imageview.class
所以首先检查类名中的所有小资本
谢谢:)这就是我遇到的问题。当时正在进行黑客竞赛并复制了大量文件,因此Android Studio从未有机会了解这项新活动。
[Activity(Theme = "@style/MyTheme")]
public class MyActivity : ActivityBase
{
...
}
Intent intent = new Intent(context,ImageView.class);
intent.putExtra("imageurl",clients_document_return.getUrl());
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
v.getContext().startActivity(intent);