Java Android应用程序在startActivity()上崩溃
您好,我是android编程新手,这个应用程序在遇到startActivity()调用后崩溃,有两个按钮,当按下启动新活动时,其中一个按钮工作正常,但按下另一个按钮,应用程序崩溃,我在AndroidManifest.xml中定义了它们。我已经对导致崩溃的代码进行了注释Java Android应用程序在startActivity()上崩溃,java,android,Java,Android,您好,我是android编程新手,这个应用程序在遇到startActivity()调用后崩溃,有两个按钮,当按下启动新活动时,其中一个按钮工作正常,但按下另一个按钮,应用程序崩溃,我在AndroidManifest.xml中定义了它们。我已经对导致崩溃的代码进行了注释 public class poetry extends Activity { public void onCreate(Bundle savedInstanceState){ super.onCreate(sa
public class poetry extends Activity {
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.poetry);
WindowManager wm = getWindowManager();
Display d = wm.getDefaultDisplay();
if(d.getWidth() > d.getHeight()){
Log.d("Orientation", "Landscape");
}else{
Log.d("Orientation", "Potratit");
}
}
//Results in crash
public void onClickPersian(View v){
startActivity(new Intent(poetry.this, persian.class));
}
//Runs Fine
public void onClickUrdu(View v){
startActivity(new Intent(poetry.this, urdu.class));
}
}
波斯语班
public class persian extends Activity {
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.persian);
WindowManager w = getWindowManager();
Display d = w.getDefaultDisplay();
if(d.getWidth() > d.getHeight()){
Log.d("Orientation", "Landscape");
}else{
Log.d("Orientation", "Potrait");
}
}
}
波斯语.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/Persian"
android:id="@+id/btnPersian"
android:layout_centerHorizontal="true"
android:layout_marginTop="@android:dimen/app_icon_size"
android:onClick="onClickPersian"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/Urdu"
android:id="@+id/btnUrdu"
android:layout_centerHorizontal="true"
android:layout_below="@+id/btnPersian"
android:layout_marginTop="25dp"
android:onClick="onClickUrdu"
/>
</RelativeLayout>
放
您的日志显示
Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.ZindaRud/com.example.ZindaRud.persian}; have you declared this activity in your AndroidManifest.xml?
这意味着您尚未在Manifest.xml文件中声明该活动
但是从清单文件来看,您似乎已经声明了它,但没有使用包名
首先关闭并打开IDE,然后清理并重新构建项目。如果仍然不起作用,请尝试执行以下操作,然后再次清理构建项目。如果您使用的是eclipse,我建议您在添加此类属性时应使用Ctrl+Space
,以便它为您提供可用的选项。现在,为了解决您的问题,请首先尝试从您的
中删除所有“.”,如果这不起作用,请尝试将活动名称与包一起放入Manifest.xml文件中,在您的情况下,该文件是com.example.ZindaRud
,因此只需添加com.example.ZindaRud.your_活动
,而不仅仅是活动名称。您可以发布吗你的软件包浏览器的屏幕截图?您可能已将Persian类放在其他包中。在AndroidManifest.xml文件中,这是一个简单的输入错误造成的,
我写的是行动而不是活动
感谢所有试图提供帮助的人。粘贴LogCat,或者出现异常情况。问题不在乌尔都语中,而在波斯语中,请看以下内容:。有时这不取决于您的代码,而是取决于eclipse。还有,如果你把。在乌尔都语上它也崩溃了吗?乌尔都语在“.”之前或之后都没有崩溃。看看:。另外,尝试刷新IntelliJ IDEA(关闭/打开)尝试将活动类指定为com.example.ZindaRud.persian删除“.”不起作用,包括“com.example.ZindaRud.persian”也不起作用再次更新答案进行清理构建几次,如果仍然无法工作,请更新IDE(如果可用),检查您放置活动的包结构。波斯类位于同一个包中
06-26 15:34:23.407 745-745/com.example.ZindaRud D/Orientation﹕ Potratit
06-26 15:34:24.967 745-745/com.example.ZindaRud D/AndroidRuntime﹕ Shutting down VM
06-26 15:34:24.967 745-745/com.example.ZindaRud W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x409961f8)
06-26 15:34:25.017 745-745/com.example.ZindaRud E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.IllegalStateException: Could not execute method of the activity
at android.view.View$1.onClick(View.java:3039)
at android.view.View.performClick(View.java:3480)
at android.view.View$PerformClick.run(View.java:13983)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4340)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at android.view.View$1.onClick(View.java:3034)
at android.view.View.performClick(View.java:3480)
at android.view.View$PerformClick.run(View.java:13983)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4340)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.ZindaRud/com.example.ZindaRud.persian}; have you declared this activity in your AndroidManifest.xml?
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1508)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1384)
at android.app.Activity.startActivityForResult(Activity.java:3190)
at android.app.Activity.startActivity(Activity.java:3297)
at com.example.ZindaRud.poetry.onClickPersian(poetry.java:28)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at android.view.View$1.onClick(View.java:3034)
at android.view.View.performClick(View.java:3480)
at android.view.View$PerformClick.run(View.java:13983)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4340)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
<activity android:name=".urdu"
<activity android:name="urdu"
Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.ZindaRud/com.example.ZindaRud.persian}; have you declared this activity in your AndroidManifest.xml?