2012-07-27 52 views
0

我下面這個tutorial一個文件,我在模擬器上測試它,當我運行該項目,並單擊它崩潰的按鈕,並給了我下面的錯誤選擇使用Intent.ACTION_GET_CONTENT

07-27 06:33:30.324: E/AndroidRuntime(10972): FATAL EXCEPTION: main 
07-27 06:33:30.324: E/AndroidRuntime(10972): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.GET_CONTENT typ=file/ * } 
07-27 06:33:30.324: E/AndroidRuntime(10972): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1408) 
07-27 06:33:30.324: E/AndroidRuntime(10972): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378) 
07-27 06:33:30.324: E/AndroidRuntime(10972): at android.app.Activity.startActivityForResult(Activity.java:2817) 
07-27 06:33:30.324: E/AndroidRuntime(10972): at com.exercise.AndroidPick_a_File.AndroidPick_a_File$1.onClick(AndroidPick_a_File.java:35) 
07-27 06:33:30.324: E/AndroidRuntime(10972): at android.view.View.performClick(View.java:2408) 
07-27 06:33:30.324: E/AndroidRuntime(10972): at android.view.View$PerformClick.run(View.java:8816) 
07-27 06:33:30.324: E/AndroidRuntime(10972): at android.os.Handler.handleCallback(Handler.java:587) 
07-27 06:33:30.324: E/AndroidRuntime(10972): at android.os.Handler.dispatchMessage(Handler.java:92) 
07-27 06:33:30.324: E/AndroidRuntime(10972): at android.os.Looper.loop(Looper.java:123) 
07-27 06:33:30.324: E/AndroidRuntime(10972): at android.app.ActivityThread.main(ActivityThread.java:4627) 
07-27 06:33:30.324: E/AndroidRuntime(10972): at java.lang.reflect.Method.invokeNative(Native Method) 
07-27 06:33:30.324: E/AndroidRuntime(10972): at java.lang.reflect.Method.invoke(Method.java:521) 
07-27 06:33:30.324: E/AndroidRuntime(10972): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
07-27 06:33:30.324: E/AndroidRuntime(10972): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
07-27 06:33:30.324: E/AndroidRuntime(10972): at dalvik.system.NativeStart.main(Native Method) 

我想要處理這個錯誤,請幫我處理這個錯誤。

+1

您需要顯示您正在使用的代碼。僅僅提供教程對我們來說是不夠的。 – Eric 2012-07-27 00:48:37

+0

我只寫了本教程,沒有別的我寫的。我只是複製並粘貼到那裏沒有任何變化 – 2012-07-27 00:53:52

回答

5

您有此錯誤,因爲您沒有在模擬器上的文件資源管理器應用程序。

如果你想測試是否安裝了文件瀏覽器:

final PackageManager packageManager = getActivity().getPackageManager(); 
final Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
intent.setType("file/*"); 
List<ResolveInfo> list = packageManager.queryIntentActivities(intent, 
           PackageManager.GET_ACTIVITIES); 

if (list.size() > 0) { 
    //app installed 
} else { 
    //no app 
} 
+0

不能處理異常? – 2012-07-27 01:00:27

+0

您可以安裝apk模擬器(並與一個文件瀏覽器應用程序安裝,沒有錯誤) – SteveR 2012-07-27 01:05:59

+0

但我想給一個選項,如果沒有fileexplorer安裝然後去市場,它不應該崩潰 – 2012-07-27 01:17:10

0

作爲一個類似的問題(https://stackoverflow.com/a/34181925/4098711)看到。假設您正在進行某項活動(否則請通過返回當前活動的方法來替換此項):

final PackageManager packageManager = this.getPackageManager(); 
final Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
intent.setType("file/*"); 
ComponentName testedActivity = intent.resolveActivity(getPackageManager()); 
if (testedActivity != null) { 
    startActivityForResult(intent,IMPORT_FILE_REQ_CODE); 
} else { 
    Toast.makeText(this,"No file explorer available",Toast.LENGTH_LONG).show(); 
}