相关疑难解决方法(0)

java.io.FileNotFoundException:此文件无法作为文件描述符打开; 它可能是压缩的

我正在编写一个来自android的音板.问题是有些声音有效,有些无效.这是我得到的声音的回溯不起作用

05-31 13:23:04.227 18440 18603 W System.err: java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed
05-31 13:23:04.227 18440 18603 W System.err:    at android.content.res.AssetManager.openAssetFd(Native Method)
05-31 13:23:04.227 18440 18603 W System.err:    at android.content.res.AssetManager.openFd(AssetManager.java:331)
05-31 13:23:04.227 18440 18603 W System.err:    at com.phonegap.AudioPlayer.startPlaying(AudioPlayer.java:201)
05-31 13:23:04.227 18440 18603 W System.err:    at com.phonegap.AudioHandler.startPlayingAudio(AudioHandler.java:181)
05-31 13:23:04.235 18440 18603 W System.err:    at com.phonegap.AudioHandler.execute(AudioHandler.java:64)
05-31 13:23:04.235 18440 18603 W System.err:    at com.phonegap.api.PluginManager$1.run(PluginManager.java:86)
05-31 13:23:04.235 18440 18603 W System.err:    at java.lang.Thread.run(Thread.java:1096)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

java android filenotfoundexception cordova

37
推荐指数
6
解决办法
3万
查看次数

如何从我的.apk文件中打包的jar文件中加载一个类?

我正在尝试从jar文件加载一个接口的插件实现,该文件位于我的.apk文件的/ assets目录中.我能够让它工作的唯一方法是将jar文件解压缩到私有外部存储器,然后将该文件传递给DexClassLoader.

这有效,但为什么jar必须存在于两个地方(.apk和私人外部存储)?DexClassLoader必须以文件路径作为参数.

有没有办法给它一个直接路径到/ assets文件夹中的文件,这样我就不必使用外部存储来获取已存在的文件的额外副本?

以下是相关的代码段:

// somewhere in my main Activity ...
  final File aExtractedDexFile = new File(getDir("dex", Context.MODE_PRIVATE),
                                  LIBRARY_DEX_JAR);
  extractDexTo(aExtractedDexFile);
  loadLibraryProvider(aExtractedDexFile);
Run Code Online (Sandbox Code Playgroud)

/** Extract the jar file that contains the implementation class.dex and place in private storage */
private void extractDexTo(File tJarInternalStoragePath) {
  BufferedInputStream aJarInputStream = null;
  OutputStream aDexOutputStream = null;

  try {
    aJarInputStream = new BufferedInputStream(getAssets().open(LIBRARY_DEX_JAR));
    aJarOutputStream = new BufferedOutputStream(new FileOutputStream(tJarInternalStoragePath));
    byte[] buf = new byte[BUF_SIZE];
    int len;
    while ((len = aJarInputStream.read(buf, 0, BUF_SIZE)) > 0)
    { …
Run Code Online (Sandbox Code Playgroud)

android assets classloader

7
推荐指数
1
解决办法
3351
查看次数

如何在android中获取正确的路径文件

我的代码如下:

Scanner sc = null;
try {
    sc = new Scanner(new File("assets/mainmenu/readSourceFile.txt"));
} catch (FileNotFoundException e1) {
    // TODO Auto-generated catch block
    System.out.println(e1.toString());
    e1.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

然后,logcat显示异常 java.io.FileNotFoundException

我怎样才能找到我的档案?我试过了

sc = new Scanner(new File("mainmenu/readSourceFile.txt"));

然而,它仍然是扔 FilenotFoundException

我的文件位于文件夹assets/mainmenu/readSourceFile.txt中

我试试这个::

private InputStream is;
try {
        is = this.getResources().getAssets().open("mainmenu/readSourceFile.txt");
    } catch (IOException e) {
        e.toString();
    }
Run Code Online (Sandbox Code Playgroud)

我使用getAssets来访问android中的资产文件.但是,如果我使用,我怎么能想读取文本文件InputStream

java android

7
推荐指数
1
解决办法
1832
查看次数

应用程序空指针异常

我写了这样一个应用程序(它仍在进行中......).这是日志:

10-02 13:38:18.714: D/AndroidRuntime(637): Shutting down VM
10-02 13:38:18.714: W/dalvikvm(637): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
10-02 13:38:18.734: E/AndroidRuntime(637): FATAL EXCEPTION: main
10-02 13:38:18.734: E/AndroidRuntime(637): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.test1/com.example.test1.MainActivity}: java.lang.NullPointerException
10-02 13:38:18.734: E/AndroidRuntime(637):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
10-02 13:38:18.734: E/AndroidRuntime(637):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
10-02 13:38:18.734: E/AndroidRuntime(637):  at android.app.ActivityThread.access$600(ActivityThread.java:130)
10-02 13:38:18.734: E/AndroidRuntime(637):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
10-02 13:38:18.734: E/AndroidRuntime(637):  at android.os.Handler.dispatchMessage(Handler.java:99)
10-02 13:38:18.734: E/AndroidRuntime(637):  at android.os.Looper.loop(Looper.java:137)
10-02 13:38:18.734: E/AndroidRuntime(637):  at android.app.ActivityThread.main(ActivityThread.java:4745)
10-02 13:38:18.734: E/AndroidRuntime(637):  at java.lang.reflect.Method.invokeNative(Native Method)
10-02 13:38:18.734: E/AndroidRuntime(637):  at java.lang.reflect.Method.invoke(Method.java:511)
10-02 …
Run Code Online (Sandbox Code Playgroud)

java file-io android

0
推荐指数
1
解决办法
83
查看次数