2017-02-20 15 views
1

私はの瓶を持っています。これは私のアンドロイドプロジェクトの/libsフォルダにあります。 jarファイルにはxmlファイルがあります。.apkからファイルを読み取る

私がしたいことは、アンドロイドアプリのjarファイルxmlを読んでください。

私は、以下の方法を使用して試してみました:

 private String loadFromJar(String p_strFileName) { 
      try { 
       String strPath = p_strFileName; 
       InputStream stream = this.class.getResourceAsStream(strPath); 
       if (stream == null) { 
        System.err.println(" stream is null for " + strPath); 
       } else { 
        int av = (stream.available()/200) + 1; 
        int i = 0; 
        StringBuilder sb = new StringBuilder(); 
        while (i <= av) { 
         try { 
          byte[] a = new byte[200]; 
          stream.read(a); 
          sb.append(new String(a, "UTF-8")); 
          i++; 
         } catch (Exception e) { 
          break; 
         } 
        } 
        return sb.toString(); 
       } 
      } catch (Exception e) { 
       Log.e(LOG_TAG, "jarfile is null for " + p_strFileName); 
      } 
      return ""; 
     } 

しかし、それは動作しません。

私はまた、Java Swingアプリケーションでも同じことを試みました。

私は解像度のフォルダから、または資産フォルダ内のファイルを読むことができることを知っている

jarファイルからAPKファイルの動作が異なっていると思います。しかし、これは私の場合の解決策ではありません。 jarファイルはプラットフォームに依存しないライブラリです。デスクトッププラットフォームなど他のプラットフォームと同様に、ライブラリを使用してファイルを取得したいと考えています。

+0

なぜ資産を使用しないのですか?あなたのXMLを資産に入れてください –

+0

私のライブラリには既にファイルがあるので。どうして私は手動でAndroidアプリケーションに入れなければならないのですか? – ziLk

答えて

-1

私はアンドロイドプロジェクトでjarファイルを読み込むいくつかの方法を試しました。

最後に、私はこれを使用してファイルを読むことができます:

InputStream stream = getClass().getClassLoader().getResourceAsStream(strPath); 

以下のコードは何の仕事もしません。

InputStream stream = MyFragment.class.getResourceAsStream(strPath); // fails 
InputStream stream = getClass().getResourceAsStream(p_strFilePath); // fails 
関連する問題