Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android I';我一直在onCreate()中调用方法_Android - Fatal编程技术网

Android I';我一直在onCreate()中调用方法

Android I';我一直在onCreate()中调用方法,android,Android,大家好,我一直在做一个简单的函数调用。这是我第一个来自iPhone的android应用程序。每次我在onCreate()中执行某些操作时,我的应用程序都会崩溃。。我相信问题很简单 public class AndroidReaderActivity extends Activity { public void test(){ File dir=new File("/assets"); String[] listefichiers; int

大家好,我一直在做一个简单的函数调用。这是我第一个来自iPhone的android应用程序。每次我在onCreate()中执行某些操作时,我的应用程序都会崩溃。。我相信问题很简单

public class AndroidReaderActivity extends Activity {

    public void test(){
        File dir=new File("/assets");
        String[] listefichiers;
        int i;
        listefichiers = dir.list();
        for (i = 0; i < listefichiers.length; i++) {
            System.out.println(listefichiers[i]);
        }
    }
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        test();        
    }
}

第14行有一个nullpointerexception。看这是什么。我认为您没有正确创建文件。

从stacktrace看,问题似乎在于您试图访问/assets目录(位于APK内部)时

调用dir.list()时,请给出null指针,因为无法实例化dir

你到底想干什么?是否要访问程序的资产目录

您可以使用以下代码列出资产:

public void test(){
    AssetManager assetManager = null;
    assetManager = getResources().getAssets();

    try {
        // List main folder (/assets) content
        for(String s : assetManager.list("")){
            Log.i("TestActivity", s);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}
导致:

05-11 16:55:08.555: I/TestActivity(13284): de
05-11 16:55:08.555: I/TestActivity(13284): images
05-11 16:55:08.555: I/TestActivity(13284): sounds
05-11 16:55:08.555: I/TestActivity(13284): webkit

之后,您可以通过指定assetManager.list(“de”)来列出每个目录的内容,具体取决于您尝试执行的操作。如果您试图列出目录中的文件,下面是一篇文章,介绍如何执行此操作:


资产文件夹中不存在文件的绝对路径。内容打包在APK文件中

  File dir=new File("/assets");
但您可以从资产中获取输入流

AssetManager am = context.getAssets();

        InputStream is = am.open("/assets/yourfile");

程序给出了什么错误?获得了访问文件的权限?将您自己的方法放在onCreate方法下面。您正在以错误的方式访问资产文件夹。您必须使用类似以下内容file:///......“我正在尝试列出目录中的文件;)谢谢
  File dir=new File("/assets");
AssetManager am = context.getAssets();

        InputStream is = am.open("/assets/yourfile");