Ini adalah kode saya untuk memutar file 3gp audio yang direkam
Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
Uri data = Uri.parse(path);
intent.setDataAndType(data, "audio/mp3");
startActivity(intent);
Tetapi saat menjalankannya di perangkat HTC saya (Android 2.2 Froyo) menunjukkan pengecualian:
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)
Di tablet Galaxy itu berfungsi dengan baik. Bagaimana cara mengatasi masalah ini?
android
android-2.2-froyo
galaxy-tab
jennifer
sumber
sumber
Jawaban:
Alamat url harus diawali dengan http: //
melempar ActivityNotFoundException. Jika Anda menambahkan "http: //", masalah terpecahkan.
Mungkin tidak membantu OP, tetapi saya akhirnya di sini mencari pengecualian yang sama dan mungkin membantu orang lain.
sumber
file://
hilang dalam kasus saya sampai saya berubahUri.parse()
menjadiUri.fromFile()
.Uri.parse(Uri.decode(encodedString))
Jika Anda juga mendapatkan kesalahan ini saat mencoba membuka halaman web dari aplikasi android Anda, itu karena url Anda terlihat seperti ini:
www.google.com
bukannya:
https://www.google.com
atauhttp://www.google.com
tambahkan kode ini ke Aktivitas / Fragmen Anda:
cukup kirimkan url Anda ke
openWebPage()
. Jika sudah diawali denganhttps://
atauhttp://
maka Anda baik untuk pergi, jika pernyataan if menangani itu untuk Andasumber
Ini cara yang benar untuk melakukannya.
Anda perlu mengimpor impor android.webkit.MimeTypeMap;
sumber
Bagi saya saat mencoba membuka tautan:
Saya mendapat kesalahan yang sama
android.content.ActivityNotFoundException: No Activity found to handle Intent
* Pelajaran: Pastikan setidaknya ada satu aplikasi yang menangani maksud yang Anda panggil *
sumber
Jawaban oleh Maragues membuat saya memeriksa keluaran logcat. Tampaknya jalur yang Anda lewati ke Uri harus diawali dengan
file:/
Karena ini adalah jalur lokal ke penyimpanan Anda.
Anda mungkin juga ingin melihat jalan itu sendiri.
Titik gunung tampaknya muncul dua kali di jalur penuh.
sumber
Jika Anda tidak meneruskan URL web yang benar dan tidak memiliki browser, ActivityNotFoundException terjadi, jadi periksa persyaratan tersebut atau tangani pengecualian secara eksplisit. Itu bisa menyelesaikan masalah Anda.
sumber
Periksa metode yang berguna ini:
URLUtil.guessUrl(urlString)
Itu membuat google.com -> http://google.com
sumber
Saya memiliki masalah yang sama, jadi saya melihat maksud yang login di LogCat. Saat melihat video dari Galeri, ini memanggil maksud Intent.View yang sama, tetapi setel Type ke "audio / *", yang memperbaiki masalah saya, dan tidak perlu mengimpor MimeTypeMap. Contoh:
sumber
Apakah pengecualian ini bahkan berubah menjadi
Tapi terima kasih kepada @Stan saya telah berubah menjadi solusi yang sangat sederhana namun berguna:
Uri.fromFile(File(content))
sebagai gantinyaUri.parse(path)
Semoga dapat membantu seseorang untuk memperbaiki masalahnya.
sumber
Jika Anda memiliki kesalahan ini di logcat Anda, gunakan kode ini untuk membantu saya
juga
sumber
Pertama coba kode ini di dalam AndroidManifest
Jika kode ini berfungsi, baiklah. Tapi kalau tidak. Coba kode ini dari kelas mana Anda ingin meneruskan data atau uri.
Semoga ini akan menyelesaikan masalah Anda. Terima kasih
sumber
Saya punya dua ide:
Pertama: jika ingin memutar file 3gp sebaiknya menggunakan jenis mime "audio / 3gpp" atau "audio / mpeg"
Dan kedua: Anda dapat mencoba menggunakan metode
setData(data)
untukintent
tanpa jenis mime.Semoga ini membantu.
sumber
Pengecualian ini dapat muncul saat Anda menangani
Deep linking
atau URL untuk browser, jika tidak ada default yang diinstal. Dalam kasus Deep linking, mungkin tidak ada aplikasi yang diinstal yang dapat memproses tautan dalam formatmyapp://mylink
.Anda dapat menggunakan solusi jeruk keprok untuk API hingga 29:
Untuk API> = 30, lihat intent.resolveActivity mengembalikan null di API 30 .
sumber
coba periksa dengan Url seperti tambahkan
https://www.google.com
di jalur dan memulai aktivitas jika berhasil daripada Anda menambahkan jalur yang salah
sumber