Joh*_*ket 28 android android-manifest android-activity
我有一个包含几个包的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">
Run Code Online (Sandbox Code Playgroud)
我的活动在我的清单中声明为:
<activity android:name=".mainScreenActivity"></activity>
<activity android:name=".SetLocation.setLocationActivity"></activity>
Run Code Online (Sandbox Code Playgroud)
mainScreen活动显示正常,因为它位于com.WAPP包中.但是当我尝试运行setLocationActivity时,我无法找到显式的类错误.这是我如何拥有intent参数:
Intent i = new Intent();
i.setClassName("com.WAPP.SetLocation",
"com.WAPP.SetLocation.setLocationActivity");
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
Jer*_*rds 26
第一个参数是应用程序包而不是活动所在的包.
您可以像这样调用Activity.
Intent i = new Intent();
i.setClassName("com.WAPP",
"com.WAPP.SetLocation.setLocationActivity");
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
首选,因为SYLARRR建议让Android自动为您解决问题.因此呼叫为......
startActivity(new Intent(this, setLocationActivity.class));
Run Code Online (Sandbox Code Playgroud)
根据java标准,建议将软件包名称全部设置为低级,并将类名称设置为CamelCased.
Huy*_*ỉnh 13
如果新活动不在与MainActivity相同的数据包中(您从这里调用?),请尝试在清单上声明
<activity android:name="com.WAPP.SetLocation.setLocationActivity"></activity>
Run Code Online (Sandbox Code Playgroud)
并在呼叫者
Intent intent = new Intent(this, setLocationActivity.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
小智 12
除上述答案外,请确保您的活动在清单中的应用程序内声明
<application
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true">
<activity android:name=".mainScreenActivity"></activity>
<activity android:name=".SetLocation.setLocationActivity"></activity>
</application>
Run Code Online (Sandbox Code Playgroud)
如果我没记错的话,i.setClassName("com.WAPP.SetLocation","com.WAPP.SetLocation.setLocationActivity");应该是i.setClassName(getBaseContext(),"setLocationActivity"); Reference
也尝试一下这个语法:
startActivity(new Intent(MyActivity.this, setLocationActivity.class));
Run Code Online (Sandbox Code Playgroud)
并尝试从以下位置删除起始点:
<activity android:name=".SetLocation.setLocationActivity"></activity>
Run Code Online (Sandbox Code Playgroud)