Android错误“无法find明确的活动类”

我有一个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"> 

我的活动在我的清单中声明如下:

 <activity android:name=".mainScreenActivity"></activity> <activity android:name=".SetLocation.setLocationActivity"></activity> 

mainScreen活动显示正常,因为它位于com.WAPP包中。 但是当我尝试运行setLocationActivity,我得到无法find显式的类错误。 这里是我如何有意图参数:

 Intent i = new Intent(); i.setClassName("com.WAPP.SetLocation", "com.WAPP.SetLocation.setLocationActivity"); startActivity(i); 

  • 通过代码/程序关闭或重新启动Android设备?
  • 设置用于不同分辨率的可绘制文件夹
  • 错误:应用程序需要API版本14.设备API版本为13(Android 3.2.1)
  • 从android apk文件parsingversionCode
  • 如何在PhoneGap 3中编辑AndroidManifest.xml
  • 在应用程序之间使用隐式意图的自定义操作
  • 对于android库项目,在manifest中有意义吗?
  • 在应用程序中以编程方式启用USBdebugging(在settings / applications / development下)
  • 第一个参数是应用程序包,而不是活动所在的包。

    你可以像这样调用Activity。

     Intent i = new Intent(); i.setClassName("com.WAPP", "com.WAPP.SetLocation.setLocationActivity"); startActivity(i); 

    SYLARRRbuild议让Android自动为您解决这个问题。 因此,呼吁..

     startActivity(new Intent(this, setLocationActivity.class)); 

    build议按照Java标准,将包名称全部设置为小写,类名称为CamelCased。

    如果新活动与MainActivity不在同一个数据包中(您从这里调用?),请尝试在清单上声明

     <activity android:name="com.WAPP.SetLocation.setLocationActivity"></activity> 

    并在呼叫者

     Intent intent = new Intent(this, setLocationActivity.class); startActivity(intent); 

    希望这可以帮助!

    除了上面的答案之外,请确保您的活动在应用程序清单中声明

     <application android:allowBackup="true" android:label="@string/app_name" android:supportsRtl="true"> <activity android:name=".mainScreenActivity"></activity> <activity android:name=".SetLocation.setLocationActivity"></activity> </application> 

    这样做:

     Intent intent = new Intent(); intent.setComponent( new ComponentName("com.WAPP", "com.WAPP.SetLocation.setLocationActivity")); startActivity(i); 

    如果我没有错, 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> 

    在你的清单中,你将它声明为.SetLoction.setLocationActivity,但是包的名字是com.WAPP.SetLocation,所以你需要再次前缀。

     Intent i = new Intent(); i.setClassName("com.WAPP.SetLocation", "com.WAPP.SetLocation.SetLocation.setLocationActivity"); startActivity(i);