我的代码在这里:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1){
if (resultCode == Activity.RESULT_OK){
Uri selectdFileUri = data.getData();
File file = new File(selectdFileUri.getPath().toString());
Log.e(TAG, "File: "+file.getName() );
uploadedFileName = file.getName().toString();
Log.e(TAG, "FILE NAME: "+uploadedFileName );
tokens = new StringTokenizer(uploadedFileName,":");
first = tokens.nextToken();
file_1 = tokens.nextToken().trim();
Log.e(TAG, "FILE 1: "+file_1 );
}
}
}
我收到的错误:
FATAL EXCEPTION: main
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content://com.estrongs.files/storage/sdcard0/WhatsApp/Media/WhatsApp Documents/8763890_133791_1103157248.pdf }} to activity {com.cogent.harikrishna.uploadpdf/com.cogent.harikrishna.uploadpdf.MainActivity}: java.util.NoSuchElementException
at android.app.ActivityThread.deliverResults(ActivityThread.java:3533)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3576)
at android.app.ActivityThread.access$1100(ActivityThread.java:165)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1421)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5391)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:0)
我引用我发现的here
java.util.StringTokenizer也可以抛出NoSuchElementException 没有更多的标记或元素,你调用nextToken()或 nextElement()方法。
使用Stringtokenizer调用时摆脱此异常 在进行调用之前,hasMoreTokens()或hashMoreElements() nextToken()或nextElement()。