Это мой код для воспроизведения записанного аудио файла 3gp
Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
Uri data = Uri.parse(path);
intent.setDataAndType(data, "audio/mp3");
startActivity(intent);
Но при запуске в моем устройстве HTC (Android 2.2 Froyo) выдает исключение:
05-04 16:37:37.597: WARN/System.err(4065): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=/mnt/sdcard/mnt/sdcard/audio-android.3gp typ=audio/mp3 }
05-04 16:37:37.597: WARN/System.err(4065): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1567)
05-04 16:37:37.597: INFO/ActivityManager(92): Starting activity: Intent { act=android.intent.action.VIEW dat=/mnt/sdcard/mnt/sdcard/audio-android.3gp typ=audio/mp3 }
05-04 16:37:37.607: WARN/System.err(4065): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1537)
05-04 16:37:37.607: WARN/System.err(4065): at android.app.Activity.startActivityForResult(Activity.java:2858)
05-04 16:37:37.607: WARN/System.err(4065): at android.app.Activity.startActivity(Activity.java:2964)
05-04 16:37:37.607: WARN/System.err(4065): at com.ey.camera.AudioRecorder.playAudio(AudioRecorder.java:244)
05-04 16:37:37.607: WARN/System.err(4065): at com.ey.camera.AudioRecorder$4.onClick(AudioRecorder.java:225)
05-04 16:37:37.607: WARN/System.err(4065): at android.view.View.performClick(View.java:2408)
05-04 16:37:37.607: WARN/System.err(4065): at android.view.View$PerformClick.run(View.java:8817)
05-04 16:37:37.607: WARN/System.err(4065): at android.os.Handler.handleCallback(Handler.java:587)
05-04 16:37:37.607: WARN/System.err(4065): at android.os.Handler.dispatchMessage(Handler.java:92)
05-04 16:37:37.607: WARN/System.err(4065): at android.os.Looper.loop(Looper.java:144)
05-04 16:37:37.607: WARN/System.err(4065): at android.app.ActivityThread.main(ActivityThread.java:4937)
05-04 16:37:37.607: WARN/System.err(4065): at java.lang.reflect.Method.invokeNative(Native Method)
05-04 16:37:37.607: WARN/System.err(4065): at java.lang.reflect.Method.invoke(Method.java:521)
05-04 16:37:37.607: WARN/System.err(4065): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-04 16:37:37.607: WARN/System.err(4065): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-04 16:37:37.607: WARN/System.err(4065): at dalvik.system.NativeStart.main(Native Method)
В планшете Galaxy работает нормально. Как я могу решить эту проблему?
android
android-2.2-froyo
galaxy-tab
Дженнифер
источник
источник
Ответы:
Адресам URL должен предшествовать http: //
выбрасывает ActivityNotFoundException. Если вы добавите «http: //», проблема решена.
Может не помочь OP, но я оказался здесь в поисках того же исключения, и, возможно, это помогает другим.
источник
file://
в моем случае отсутствовал, пока я не перешелUri.parse()
наUri.fromFile()
.Uri.parse(Uri.decode(encodedString))
Если вы также получаете эту ошибку при попытке открыть веб-страницу из вашего приложения для Android, это потому, что ваш URL-адрес выглядит следующим образом:
www.google.com
вместо:
https://www.google.com
илиhttp://www.google.com
добавьте этот код в свою активность / фрагмент:
просто передайте свой URL
openWebPage()
. Если он уже имеет префиксhttps://
или,http://
тогда вам хорошо идти, иначе оператор if сделает это за вас.источник
Это правильный способ сделать это.
вам нужно импортировать import android.webkit.MimeTypeMap;
источник
У меня при попытке открыть ссылку:
У меня такая же ошибка
android.content.ActivityNotFoundException: No Activity found to handle Intent
* Урок: убедитесь, что существует хотя бы одно приложение, которое обрабатывает вызываемое вами намерение *
источник
Ответ Maragues заставил меня проверить вывод logcat. Похоже, что путь, который вы проходите к Uri, должен иметь префикс
file:/
Поскольку это локальный путь к вашему хранилищу.
Вы также можете посмотреть на сам путь.
Точка монтирования появляется дважды на полном пути.
источник
Если вы не передаете правильный URL-адрес и у вас нет браузера, возникает ActivityNotFoundException, поэтому проверьте эти требования или обработайте исключение явным образом. Это может решить вашу проблему.
источник
Проверьте этот полезный метод:
URLUtil.guessUrl(urlString)
Это делает google.com -> http://google.com
источник
У меня была такая же проблема, поэтому я смотрел на намерение, которое зарегистрировано в LogCat. При просмотре видео из галереи он вызывал то же намерение Intent.View, но для параметра Тип было установлено значение «audio / *», что устранило мою проблему и не требует импорта MimeTypeMap. Пример:
источник
Если бы это исключение даже изменилось на
Но спасибо @Stan, я получил очень простое, но полезное решение:
Uri.fromFile(File(content))
вместоUri.parse(path)
Надеюсь, это поможет кому-нибудь решить его проблему.
источник
Если у вас есть эта ошибка в вашем журнале, используйте этот код, он мне поможет
также
источник
Сначала попробуйте этот код внутри AndroidManifest
Если этот код работает, все в порядке. Но если нет. Попробуйте этот код, из какого класса вы хотите передать данные или uri.
Надеюсь, это решит вашу проблему. Спасибо
источник
У меня две идеи:
Во-первых: если вы хотите воспроизвести файл 3gp, вы должны использовать типы MIME «audio / 3gpp» или «audio / mpeg».
И второе: вы можете попробовать метод использовать
setData(data)
дляintent
без какого - либо типа пантомимы.Надеюсь это поможет.
источник
Это исключение может возникать при обработке
Deep linking
или URL-адресе браузера, если он не установлен по умолчанию. В случае использования прямых ссылок может не быть установлено приложение, которое может обрабатывать ссылку в форматеmyapp://mylink
.Вы можете использовать мандариновый раствор для API до 29:
Для API> = 30 см. Intent.resolveActivity возвращает null в API 30 .
источник
попробуйте проверить с любым URL-адресом, например добавить
https://www.google.com
в пути и начать действие, если оно работает, чем вы добавляете неправильный путь
источник