2012-06-18 3 views
2

애셋 폴더에서 JSON 파일을 InputStream 변수로 열려고하는데 FileNotFoundExeption이 표시됩니다. 파일이 있고 경로가 맞습니다. 나는 그렇게 보았다. 그러나 내가 여기에서 찾은 어떤 것도 작동하지 않는다. 어떤 생각을 잘못했는지와 코드를 수정하는 방법에 대한 아이디어가 있습니까? 호출 활동 내에서자산에서 Android 인풋 스트림 파일 : FileNotFoundExeption

다음 조각에서

String uri = "file:///android_asset/html/json/regulatory_list.json"; 
     args.putString("KEY_URL", uri); 

는 :

@Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 

     Bundle args = this.getArguments(); 
     String URL = args.getString(KEY_URL); 
     new GetJSONTask().execute(URL); 
    } 

    class GetJSONTask extends AsyncTask<String, Integer, String> { 

    protected String doInBackground(String... arg0) { 

     String uri = arg0[0]; 

     InputStream is = null; 

     if (uri.contains("http") == true) {// Run from URL 
      try {. . . 

      } else { 

      try {. . . 
       InputStream jsonFile = getActivity().getAssets().open(uri); 
       Reader reader = new BufferedReader(new InputStreamReader(jsonFile, "UTF-8")); 
      . . . 
     } 
    . . . 

답변

2

나는 파일의 URI는 당신이 뭘 하려는지 제대로 포맷되지 않았습니다 생각합니다. 이 변경

시도 : 이것에

String uri = "file:///android_asset/html/json/regulatory_list.json"; 

:

String uri = "html/json/regulatory_list.json"; 
+0

아! 나는 깨달았다. 제 생각에 .getAssets()는 이미 어디에서 봐야하는지 알고 있습니다. Thnx! – CelticParser