【问题标题】:Apk android ActivityNotFoundExceptionApk android ActivityNotFoundException
【发布时间】:2013-11-22 08:28:12
【问题描述】:

我想使用以下代码运行一个隐式尝试:

MenuActivity.java

public class MenuActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_menu);

    Button btn = (Button) findViewById(R.id.btnVideo);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_VIEW);
            Uri intentUri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.pp);
            intent.setDataAndType(intentUri,"audio/mp3");
            startActivity(intent);
        }
    });


}

}

AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<application
    android:allowBackup="true"
    android:icon="@drawable/iconopp14"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.powerpump.MainActivity"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".MenuActivity" />
</application>

您需要在AndroidManifest.xml中指定更多参数吗?

谢谢。

【问题讨论】:

  • 找不到哪个Activity?请发布堆栈跟踪。
  • 嗨,迈克,当我按下 btnVideo 时,它会隐式调用播放媒体的应用程序,或者我应该这样做。但是当我按下按钮时,应用程序会中断。 pastebin.com/UaGXgNWK
  • 我认为您的问题出在您的文件上。你确定是mp3?您使用“audio/mp3”类型启动 Intent,但您的堆栈跟踪显示类型“video/mp4”。
  • 是的,从您下面的评论来看,我认为您实际上有一个视频文件,您正试图将其作为音频文件打开。尝试使用视频播放器应用打开文件。
  • 嗨,迈克,我在玩这两种资源,pp 用于 mp3 和 pp14 用于 mp4。但它不起作用。在这个问题的底部有一个创建文件对象的答案,之后,我可以打开一个原生应用程序,作为音乐播放器或视频播放器,但文件不播放。

标签: java android android-intent android-activity


【解决方案1】:

我想您只需在 AndroidManifest.xml 中注册您的 MenuActivity,如 here 所示。

【讨论】:

  • 我认为这是正确的答案。菜单活动的包可能不正确:
【解决方案2】:

查看您的代码,您似乎在使用默认设置创建了一个 android 项目后创建了一个 MenuActivity 类,而 MenuActivity 是您的主要活动(启动器)类。

只需将 AndroidManifest.xml 文件中的 MainActivity 替换为 MenuActivity 并删除

 <activity android:name=".MenuActivity" />

将java代码中MenuActivity中的类名替换为MainActivity,如下所示

public class MainActivity extends Activity {
   ......

将此作为您的 android manifest.xml 文件

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
  <application
     android:allowBackup="true"
     android:icon="@drawable/iconopp14"
     android:label="@string/app_name"
     android:theme="@style/AppTheme" >

    <activity android:name="com.powerpump.MenuActivity"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
 </application>

【讨论】:

  • 嗨,我有两个活动,MainActivity 用于显示 2 秒的启动演示,MenuActivity 用于显示带有一些按钮的菜单。其中之一在原始资源上播放媒体文件。也许不是正确的方法。我是菜鸟
  • 能否请您发布 MainActivity 代码?您如何将 MainActivity 与 MenuActivity 链接起来?
  • 正如另一个回复中提到的团队成员,尝试在你的 AndroidManifest.xml 'code' '代码'
  • 你也可以发布 logcat 跟踪吗?
  • 我尝试在我端运行您的代码,它会启动演示活动 1.5 秒,如您所提到的,它也将我带到 MenuActivity 类。
猜你喜欢
  • 2016-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-06
相关资源
最近更新 更多