1

私はこの方法で Android DownloadManager クラスを使用しようとしています: super.onCreate(savedInstanceState); setContentView(R.layout.main);

Request r = new Request(Uri.parse("http://url"));
r.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "file.ext"); // also tried all other possible ways to set up destination
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
dm.enqueue(r);

最後の行でdm.enqueue(r)、アプリケーションがクラッシュします。Logcat エラー:

05-12 13:53:55.408: E/JavaBinder(6814): *** Uncaught remote exception!  (Exceptions are not yet supported across processes.)
05-12 13:53:55.408: E/JavaBinder(6814): java.lang.NoSuchMethodError: getExternalStorages
05-12 13:53:55.408: E/JavaBinder(6814):     at com.android.providers.downloads.Helpers.isFilenameValid(Helpers.java:652)
05-12 13:53:55.408: E/JavaBinder(6814):     at com.android.providers.downloads.DownloadProvider.checkFileUriDestination(DownloadProvider.java:613)
05-12 13:53:55.408: E/JavaBinder(6814):     at com.android.providers.downloads.DownloadProvider.insert(DownloadProvider.java:500)
05-12 13:53:55.408: E/JavaBinder(6814):     at android.content.ContentProvider$Transport.insert(ContentProvider.java:198)
05-12 13:53:55.408: E/JavaBinder(6814):     at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:146)
05-12 13:53:55.408: E/JavaBinder(6814):     at android.os.Binder.execTransact(Binder.java:324)
05-12 13:53:55.408: E/JavaBinder(6814):     at dalvik.system.NativeStart.run(Native Method)
05-12 13:53:55.408: W/dalvikvm(6814): threadid=7: thread exiting with uncaught exception (group=0x2aac8620)
05-12 13:53:55.408: E/AndroidRuntime(6814): FATAL EXCEPTION: Binder Thread #1
05-12 13:53:55.408: E/AndroidRuntime(6814): java.lang.NoSuchMethodError: getExternalStorages
05-12 13:53:55.408: E/AndroidRuntime(6814):     at com.android.providers.downloads.Helpers.isFilenameValid(Helpers.java:652)
05-12 13:53:55.408: E/AndroidRuntime(6814):     at com.android.providers.downloads.DownloadProvider.checkFileUriDestination(DownloadProvider.java:613)
05-12 13:53:55.408: E/AndroidRuntime(6814):     at com.android.providers.downloads.DownloadProvider.insert(DownloadProvider.java:500)
05-12 13:53:55.408: E/AndroidRuntime(6814):     at android.content.ContentProvider$Transport.insert(ContentProvider.java:198)
05-12 13:53:55.408: E/AndroidRuntime(6814):     at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:146)
05-12 13:53:55.408: E/AndroidRuntime(6814):     at android.os.Binder.execTransact(Binder.java:324)
05-12 13:53:55.408: E/AndroidRuntime(6814):     at dalvik.system.NativeStart.run(Native Method)

ただし、宛先をまったく指定しない場合、ファイルは正常にダウンロードされます。

何が問題なのか全く理解できません。私を手伝ってくれますか?

4

1 に答える 1

1

エミュレーター(またはその他の変更されていない環境)でコードを試してください。既知の動作コードを使用してみることも検討してください。

于 2012-05-20T00:20:59.330 に答える