启动 Android 活动时出错
Posted
技术标签:
【中文标题】启动 Android 活动时出错【英文标题】:Error in starting Android activity 【发布时间】:2012-12-31 12:52:06 【问题描述】:在 switch 语句中的 MainActivity 类中,我声明并初始化了一个 Intent 以开始另一个活动。这是sn-p:
case MESSAGE_DEVICE_NAME:
//save connected device name
mConnectedDeviceName = msg.getData().getString(DEVICE_NAME);
Toast.makeText(getApplicationContext(), "Connected to "+mConnectedDeviceName, Toast.LENGTH_SHORT).show();
Intent medPlay = new Intent(MainActivity.this, MediaPlayer.class);
startActivity(medPlay);
break;
这是 MediaPlayer 类:
public class MediaPlayer extends Activity
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.media_player);
这里是 androidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.bt"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-sdk
android:minSdkVersion="6"
android:targetSdkVersion="10" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.bt.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".DeviceListActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/select_device"
android:theme="@android:style/Theme.Light" />
<activity
android:name=".MediaPlayer"
android:configChanges="orientation|keyboardHidden"
android:label="@string/media_player"
android:theme="@android:style/Theme.Light" />
</application>
</manifest>
但我在 LogCat 控制台上不断收到此错误:
12-31 12:39:52.475:E/AndroidRuntime(25978):致命异常:主要 12-31 12:39:52.475: E/AndroidRuntime(25978): android.content.ActivityNotFoundException:找不到显式 活动类 com.example.bt/android.media.MediaPlayer;你 在您的 AndroidManifest.xml 中声明此活动? 12-31 12:39:52.475:E/AndroidRuntime(25978):在 android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1405) 12-31 12:39:52.475: E/AndroidRuntime(25978): 在 android.app.Instrumentation.execStartActivity(Instrumentation.java:1379) 12-31 12:39:52.475: E/AndroidRuntime(25978): 在 android.app.Activity.startActivityForResult(Activity.java:2893) 12-31 12:39:52.475:E/AndroidRuntime(25978):在 android.app.Activity.startActivity(Activity.java:3003) 12-31 12:39:52.475:E/AndroidRuntime(25978):在 com.example.bt.MainActivity$1.handleMessage(MainActivity.java:147) 12-31 12:39:52.475: E/AndroidRuntime(25978): 在 android.os.Handler.dispatchMessage(Handler.java:99) 12-31 12:39:52.475:E/AndroidRuntime(25978):在 android.os.Looper.loop(Looper.java:130) 12-31 12:39:52.475: E/AndroidRuntime(25978):在 android.app.ActivityThread.main(ActivityThread.java:3806) 12-31 12:39:52.475:E/AndroidRuntime(25978):在 java.lang.reflect.Method.invokeNative(Native Method) 12-31 12:39:52.475:E/AndroidRuntime(25978):在 java.lang.reflect.Method.invoke(Method.java:507) 12-31 12:39:52.475: E/AndroidRuntime(25978):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 12-31 12:39:52.475: E/AndroidRuntime(25978): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 12-31 12:39:52.475:E/AndroidRuntime(25978):在 dalvik.system.NativeStart.main(Native Method)
【问题讨论】:
【参考方案1】:将您的开始活动代码更改为:
Intent medPlay = new Intent(MainActivity.this,
com.example.bt.MediaPlayer.class);
startActivity(medPlay);
并在 AndroidManifest 中将 MediaPlayer 声明为:
<activity
android:name="com.example.bt.MediaPlayer"
android:configChanges="orientation|keyboardHidden"
android:label="@string/media_player"
android:theme="@android:style/Theme.Light" />
因为在日志消息中:
android.content.ActivityNotFoundException:无法找到显式 活动类 com.example.bt/android.media.MediaPlayer;你 在你的 AndroidManifest.xml 中声明了这个活动?
系统正在尝试启动默认MediaPlayer
Activity
【讨论】:
@prosper: 有没有默认的 MeduaPlayer Activity。顺便说一句,它的新的一年。去享受吧。 @SahilMahajanMj : Sahil 新年快乐 :) @user1909680 :我的回答是否能帮助您解决当前问题? @prosper 哈哈。好吧,我投了赞成票,但也忘了将我的评论添加到您的答案中。没有难过的感觉,。 @AndroSelva : 哈哈,我只想对你说“新年快乐”,这就是我评论你的原因。谢谢【参考方案2】:找不到显式活动类 com.example.bt/android.media.MediaPlayer;
您导入/指定了错误的 MediaPlayer!
【讨论】:
优秀的渔获。只需重命名您的活动或从导入中删除 MediaPlayer。它应该可以工作。以上是关于启动 Android 活动时出错的主要内容,如果未能解决你的问题,请参考以下文章
安装应用程序后在 android studio 中启动活动时出错
无法启动活动 ComponentInfo 二进制 XML 文件第 13 行:膨胀类 com.google.android.material.appbar.MaterialToolbar 时出错