我正在开发一个使用新设备(三星galaxy核心)的Android应用程序问题是当我尝试运行应用程序时,我的代码中出现错误,如无限循环或类似的东西当应用程序在我的设备中运行时出现黑屏并且我什么都不做只重新启动设备并重新开始我没有看到我曾经使用的对话框(强制关闭应用程序......)请在我的旧设备中提供任何帮助!
感谢您的回答,对不起,如果我不是那么清楚实际上问题不在我的代码中它在设备中(我认为),例如在此代码中我还没有申报Androidmanifest.xml中的新活动
package com.exadle.df;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.button);
final Intent intent = new Intent(MainActivity.this, newj.class);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MainActivity.this.startActivity(intent);
}
});
}
}
所以当应用程序崩溃时会出现黑屏,我什么都不能做!就像你说的那样#34;按住主页按钮几秒钟,当正在运行的应用程序列表出现时,将你的应用程序翻出来。"我唯一能做的就是按住电源按钮重启手机
这是logcat,如果它可以帮助
05-25 15:04:32.281 21017-21017/com.exadle.df D/dalvikvm﹕ Late-enabling CheckJNI
05-25 15:04:32.401 21017-21017/com.exadle.df D/ActivityThread﹕ setTargetHeapUtilization:0.25
05-25 15:04:32.401 21017-21017/com.exadle.df D/ActivityThread﹕ setTargetHeapIdealFree:8388608
05-25 15:04:32.401 21017-21017/com.exadle.df D/ActivityThread﹕ setTargetHeapConcurrentStart:2097152
05-25 15:04:32.871 21017-21017/com.exadle.df D/libEGL﹕ loaded /system/lib/egl/libEGL_adreno200.so
05-25 15:04:32.881 21017-21017/com.exadle.df D/libEGL﹕ loaded /system/lib/egl/libGLESv1_CM_adreno200.so
05-25 15:04:32.891 21017-21017/com.exadle.df D/libEGL﹕ loaded /system/lib/egl/libGLESv2_adreno200.so
05-25 15:04:32.891 21017-21017/com.exadle.df I/Adreno200-EGL﹕ <qeglDrvAPI_eglInitialize:299>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_JB_REL_2.0.3.04.01.02.21.107_msm8625_JB_REL_2.0.3_CL3357771_release_AU (CL3357771)
Build Date: 02/25/13 Mon
Local Branch:
Remote Branch: quic/jb_rel_2.0.3
Local Patches: NONE
Reconstruct Branch: AU_LINUX_ANDROID_JB_REL_2.0.3.04.01.02.21.107 + NOTHING
05-25 15:04:32.941 21017-21017/com.exadle.df D/OpenGLRenderer﹕ Enabling debug mode 0
05-25 15:04:37.531 21017-21017/com.exadle.df D/AndroidRuntime﹕ Shutting down VM
05-25 15:04:37.531 21017-21017/com.exadle.df W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41b78438)
05-25 15:04:37.541 21017-21017/com.exadle.df E/AndroidRuntime﹕ FATAL EXCEPTION: main
android.content.ActivityNotFoundException: Unable to find explicit activity class {com.exadle.df/com.exadle.df.newj}; have you declared this activity in your AndroidManifest.xml?
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1556)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1431)
at android.app.Activity.startActivityForResult(Activity.java:3429)
at android.app.Activity.startActivityForResult(Activity.java:3390)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:839)
at android.app.Activity.startActivity(Activity.java:3600)
at android.app.Activity.startActivity(Activity.java:3568)
at com.exadle.df.MainActivity$1.onClick(MainActivity.java:25)
at android.view.View.performClick(View.java:4191)
at android.view.View$PerformClick.run(View.java:17229)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4960)
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:1038)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
at dalvik.system.NativeStart.main(Native Method)
我正在使用Android Studio,我无法使用停止执行!
答案 0 :(得分:0)
没有你的应用程序的代码,我不知道为什么它挂起。
如果您认为它陷入无限循环,您可以使用工具来确定循环的大致位置。一个好的开始是使用the profiling tools in the Android Development Kit,它会告诉你循环发生的方法。
答案 1 :(得分:0)
如果您向我们展示了一些代码或logcat,我们可能会提供更多帮助。但是,我可以提出一些建议。
当我在我的应用程序中遇到无法正常工作的内容,或者在涉及到这些代码时崩溃时,我会一次注释掉几个代码块,并找到应用程序运行的点正确。因此,如果我有一个应用程序在调用特定方法时崩溃,我会系统地注释掉该方法的一部分,直到它停止崩溃。如果它只在整个方法被注释掉时才停止,那么我需要进入代码并尝试发现问题。但是,如果您注释掉该方法的一半并且其余代码运行,那么您知道问题出在您注释掉的内容中。然后你可以缩小到确切的问题。
请确保注释掉有意义的代码块。不要只是注释掉一个括号,然后让你的程序给你错误。智能地注释掉代码。
由于您的整个应用无法运行,请确保在您的清单中正确设置了您的初步活动。如果是你的启动,请确保在应用启动时调用它。清单中有一个设置/代码行,但我忘记了它的位置。如果所有这些都是正确的,那么就开始系统地评论该活动中的代码。从调用的最后一个方法开始,然后是倒数第二个,依此类推。当它开始运行时,查看您已注释掉的代码并尝试找到问题。
这是我们所能做的,没有任何代码或logcat。如果问题不是在代码中,而是在手机中,那么这将更适合Android爱好者论坛。如果是这种情况,您可以要求迁移。希望这有帮助!
更新
我仍然不能100%确定问题是什么,但我可以建议您的代码中的某些更改可能会或可能不会。
确保您的newj
活动在您的Manifest.XML中。应该有一行代码说:
<activity android:theme="@style/AppBaseTheme" android:screenOrientation="portrait" android:name="newj"></activity>
如果这根本没有帮助,你也可以尝试这些。
不要让你的意图超出点击监听器,而是放入内部。我发现没有在同一个OnClickListener或if语句或方法可能会导致两个问题。所以你的代码是:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Intent intent = new Intent(MainActivity.this, newj.class);
startActivity(intent); //and get rid of MainActivity.this.
}
});
如果这不起作用,那么这种方法更深入,但我认为它更安全。
首先,您想要进入按钮的XML,并添加这两行。
android:Clickable="true"
android:onClick="methodToBeCalled"
这两行取代了OnClickListener,并使按钮可单击,并告诉程序在单击按钮时调用哪个方法。所以你需要在onCreate之外创建一个看起来像这样的新方法。
public static void methodToBeCalled(View view){
final Intent intent = new Intent(MainActivity.this, newj.class);
startActivity(intent);
}
基本上,发生的事情是XML中的代码使按钮可以点击,并且在单击时调用方法“methodToBeCalled”。然后它在mainActivity类中查找该方法(因为该XML文件链接到此活动)并运行该活动,启动Intent intent
,启动活动newj
。令人困惑,对吧?并不是的。 XML告诉程序运行方法“methodToBeCalled”,它启动newj。
按顺序尝试这些方法。如果方法1不起作用,请转到2.然后3.如果这些都不起作用,请使用新的logcat,整个MainActivity
代码,整个activity_main
XML代码以及您的问题更新问题整个AndroidManifest.XML
代码。我们可以继续前进。
如果这确实是您的手机而不是代码的问题,请标记迁移到Android Enthusiasts Stack Exchange。如果这确实是手机本身的问题,而不是代码,那么你会得到更好的帮助。
希望这有帮助!