Load a file from assets folder in android studio





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







0















I was wondering if there is a way to access a file and it's path from my assets folder in android studio? The reason why I need to access the file and its path is because I am working with a method that REQUIRES the String path for a file, and it must access the file from its String path. However, in android studio I haven't found a way to access the file directly from the String value of its path. I decided to use a workaround and simply read the file from an InputStream and write the file to an OutputStream, but the file is about 170MB, and it is too memory intensive to write the File to an OutputStream. It takes my application about 10:00 Minutes to download the file when I implement that strategy. I have searched all over this website and numerous sources to find a solution (books and documentation) but am unable to find a viable solution. Here is an example of my code:



@Override
public Model doInBackground(String... params){
try {
String filePath = context.getFilesDir() + File.separator + "my_turtle.ttl";
File destinationFile = new File(filePath);
FileOutputStream outputStream = new FileOutputStream(destinationFile);
AssetManager assetManager = context.getAssets();
InputStream inputStream = assetManager.open("sample_3.ttl");


byte buffer = new byte[10000000];
int length = 0;
while ((length = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, length);
}
outputStream.close();
inputStream.close();
model = ModelFactory.createDefaultModel();

TDBLoader.loadModel(model, filePath, false);//THIS METHOD REQUIRES THE FILE PATH.
MainActivity.presenter.setModel(model);

}catch(FileNotFoundException e){
e.printStackTrace(System.out);
}
catch(IOException e){
e.printStackTrace(System.out);
}
return model;
}


As you can see the TDBLoader.loadModel() method requires a String for the file URI as the second argument, so it would be convenient to have the ability to access the File directly from my assets folder without utilizing an InputStream. The method takes as an argument (Model model, String url, Boolean showProgress). As I mentioned, the current strategy I am using utilizes too much memory and either crashes the Application entirely, or takes 10 minutes to download the file I need. I am using an AsyncTask to perform this operation, but due to the length of time required to perform the task that kind of defeats the purpose of an AsyncTask in this scenario.



What further complicates things is that I have to use an old version of Apache Jena because I am working with Android Studio and the official version of Apache Jena is not compatible with android studio. So I have to use a port that is 8 years old which doesn't have the updated classes that Apache Jena offers. If I could use the RDFParser class I could pass an InputStream, but that class does not exist in the older version of Apache Jena that I must use.



So I am stuck at this point. The method must utilize the String url path of the file in my assets folder, but I don't know how to access this without writing to a custom file from an InputStream, but writing to the file from the InputStream utilizes too much memory and forces the App to crash. If anyone has a solution I will greatly appreciate it.










share|improve this question























  • If I have the right library, loadModel() takes a URL, not a URI. As in, it expects something in the format of http://www.example.com

    – TheWanderer
    Nov 26 '18 at 23:52











  • @TheWanderer it works with a file path. It can be a File name or URL as you mentioned, because it works with in this case with the Path that I pass to it and it loads the model.

    – Simeon Ikudabo
    Nov 26 '18 at 23:58











  • I'm a bit confused now. Why can't you load from an InputStream and just do model.read(inputStream, null) ?

    – AKSW
    Nov 27 '18 at 8:37








  • 1





    you could also try to migrate the Android Jena port project to latest version if you need some of the new API features and bug fixes. shouldn't be that difficult. Right now, it's at 2.13.0, migration to 3.x might be easy given that it's mostly a Maven setup which relies to original binaries.

    – AKSW
    Nov 27 '18 at 8:41













  • @AKSW thanks for your comment. I think that I’ll try to migrate the port and simply update it. getting The updates features is one way to solve the issue here.

    – Simeon Ikudabo
    Nov 27 '18 at 18:42


















0















I was wondering if there is a way to access a file and it's path from my assets folder in android studio? The reason why I need to access the file and its path is because I am working with a method that REQUIRES the String path for a file, and it must access the file from its String path. However, in android studio I haven't found a way to access the file directly from the String value of its path. I decided to use a workaround and simply read the file from an InputStream and write the file to an OutputStream, but the file is about 170MB, and it is too memory intensive to write the File to an OutputStream. It takes my application about 10:00 Minutes to download the file when I implement that strategy. I have searched all over this website and numerous sources to find a solution (books and documentation) but am unable to find a viable solution. Here is an example of my code:



@Override
public Model doInBackground(String... params){
try {
String filePath = context.getFilesDir() + File.separator + "my_turtle.ttl";
File destinationFile = new File(filePath);
FileOutputStream outputStream = new FileOutputStream(destinationFile);
AssetManager assetManager = context.getAssets();
InputStream inputStream = assetManager.open("sample_3.ttl");


byte buffer = new byte[10000000];
int length = 0;
while ((length = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, length);
}
outputStream.close();
inputStream.close();
model = ModelFactory.createDefaultModel();

TDBLoader.loadModel(model, filePath, false);//THIS METHOD REQUIRES THE FILE PATH.
MainActivity.presenter.setModel(model);

}catch(FileNotFoundException e){
e.printStackTrace(System.out);
}
catch(IOException e){
e.printStackTrace(System.out);
}
return model;
}


As you can see the TDBLoader.loadModel() method requires a String for the file URI as the second argument, so it would be convenient to have the ability to access the File directly from my assets folder without utilizing an InputStream. The method takes as an argument (Model model, String url, Boolean showProgress). As I mentioned, the current strategy I am using utilizes too much memory and either crashes the Application entirely, or takes 10 minutes to download the file I need. I am using an AsyncTask to perform this operation, but due to the length of time required to perform the task that kind of defeats the purpose of an AsyncTask in this scenario.



What further complicates things is that I have to use an old version of Apache Jena because I am working with Android Studio and the official version of Apache Jena is not compatible with android studio. So I have to use a port that is 8 years old which doesn't have the updated classes that Apache Jena offers. If I could use the RDFParser class I could pass an InputStream, but that class does not exist in the older version of Apache Jena that I must use.



So I am stuck at this point. The method must utilize the String url path of the file in my assets folder, but I don't know how to access this without writing to a custom file from an InputStream, but writing to the file from the InputStream utilizes too much memory and forces the App to crash. If anyone has a solution I will greatly appreciate it.










share|improve this question























  • If I have the right library, loadModel() takes a URL, not a URI. As in, it expects something in the format of http://www.example.com

    – TheWanderer
    Nov 26 '18 at 23:52











  • @TheWanderer it works with a file path. It can be a File name or URL as you mentioned, because it works with in this case with the Path that I pass to it and it loads the model.

    – Simeon Ikudabo
    Nov 26 '18 at 23:58











  • I'm a bit confused now. Why can't you load from an InputStream and just do model.read(inputStream, null) ?

    – AKSW
    Nov 27 '18 at 8:37








  • 1





    you could also try to migrate the Android Jena port project to latest version if you need some of the new API features and bug fixes. shouldn't be that difficult. Right now, it's at 2.13.0, migration to 3.x might be easy given that it's mostly a Maven setup which relies to original binaries.

    – AKSW
    Nov 27 '18 at 8:41













  • @AKSW thanks for your comment. I think that I’ll try to migrate the port and simply update it. getting The updates features is one way to solve the issue here.

    – Simeon Ikudabo
    Nov 27 '18 at 18:42














0












0








0








I was wondering if there is a way to access a file and it's path from my assets folder in android studio? The reason why I need to access the file and its path is because I am working with a method that REQUIRES the String path for a file, and it must access the file from its String path. However, in android studio I haven't found a way to access the file directly from the String value of its path. I decided to use a workaround and simply read the file from an InputStream and write the file to an OutputStream, but the file is about 170MB, and it is too memory intensive to write the File to an OutputStream. It takes my application about 10:00 Minutes to download the file when I implement that strategy. I have searched all over this website and numerous sources to find a solution (books and documentation) but am unable to find a viable solution. Here is an example of my code:



@Override
public Model doInBackground(String... params){
try {
String filePath = context.getFilesDir() + File.separator + "my_turtle.ttl";
File destinationFile = new File(filePath);
FileOutputStream outputStream = new FileOutputStream(destinationFile);
AssetManager assetManager = context.getAssets();
InputStream inputStream = assetManager.open("sample_3.ttl");


byte buffer = new byte[10000000];
int length = 0;
while ((length = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, length);
}
outputStream.close();
inputStream.close();
model = ModelFactory.createDefaultModel();

TDBLoader.loadModel(model, filePath, false);//THIS METHOD REQUIRES THE FILE PATH.
MainActivity.presenter.setModel(model);

}catch(FileNotFoundException e){
e.printStackTrace(System.out);
}
catch(IOException e){
e.printStackTrace(System.out);
}
return model;
}


As you can see the TDBLoader.loadModel() method requires a String for the file URI as the second argument, so it would be convenient to have the ability to access the File directly from my assets folder without utilizing an InputStream. The method takes as an argument (Model model, String url, Boolean showProgress). As I mentioned, the current strategy I am using utilizes too much memory and either crashes the Application entirely, or takes 10 minutes to download the file I need. I am using an AsyncTask to perform this operation, but due to the length of time required to perform the task that kind of defeats the purpose of an AsyncTask in this scenario.



What further complicates things is that I have to use an old version of Apache Jena because I am working with Android Studio and the official version of Apache Jena is not compatible with android studio. So I have to use a port that is 8 years old which doesn't have the updated classes that Apache Jena offers. If I could use the RDFParser class I could pass an InputStream, but that class does not exist in the older version of Apache Jena that I must use.



So I am stuck at this point. The method must utilize the String url path of the file in my assets folder, but I don't know how to access this without writing to a custom file from an InputStream, but writing to the file from the InputStream utilizes too much memory and forces the App to crash. If anyone has a solution I will greatly appreciate it.










share|improve this question














I was wondering if there is a way to access a file and it's path from my assets folder in android studio? The reason why I need to access the file and its path is because I am working with a method that REQUIRES the String path for a file, and it must access the file from its String path. However, in android studio I haven't found a way to access the file directly from the String value of its path. I decided to use a workaround and simply read the file from an InputStream and write the file to an OutputStream, but the file is about 170MB, and it is too memory intensive to write the File to an OutputStream. It takes my application about 10:00 Minutes to download the file when I implement that strategy. I have searched all over this website and numerous sources to find a solution (books and documentation) but am unable to find a viable solution. Here is an example of my code:



@Override
public Model doInBackground(String... params){
try {
String filePath = context.getFilesDir() + File.separator + "my_turtle.ttl";
File destinationFile = new File(filePath);
FileOutputStream outputStream = new FileOutputStream(destinationFile);
AssetManager assetManager = context.getAssets();
InputStream inputStream = assetManager.open("sample_3.ttl");


byte buffer = new byte[10000000];
int length = 0;
while ((length = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, length);
}
outputStream.close();
inputStream.close();
model = ModelFactory.createDefaultModel();

TDBLoader.loadModel(model, filePath, false);//THIS METHOD REQUIRES THE FILE PATH.
MainActivity.presenter.setModel(model);

}catch(FileNotFoundException e){
e.printStackTrace(System.out);
}
catch(IOException e){
e.printStackTrace(System.out);
}
return model;
}


As you can see the TDBLoader.loadModel() method requires a String for the file URI as the second argument, so it would be convenient to have the ability to access the File directly from my assets folder without utilizing an InputStream. The method takes as an argument (Model model, String url, Boolean showProgress). As I mentioned, the current strategy I am using utilizes too much memory and either crashes the Application entirely, or takes 10 minutes to download the file I need. I am using an AsyncTask to perform this operation, but due to the length of time required to perform the task that kind of defeats the purpose of an AsyncTask in this scenario.



What further complicates things is that I have to use an old version of Apache Jena because I am working with Android Studio and the official version of Apache Jena is not compatible with android studio. So I have to use a port that is 8 years old which doesn't have the updated classes that Apache Jena offers. If I could use the RDFParser class I could pass an InputStream, but that class does not exist in the older version of Apache Jena that I must use.



So I am stuck at this point. The method must utilize the String url path of the file in my assets folder, but I don't know how to access this without writing to a custom file from an InputStream, but writing to the file from the InputStream utilizes too much memory and forces the App to crash. If anyone has a solution I will greatly appreciate it.







java android apache rdf jena






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 26 '18 at 23:49









Simeon IkudaboSimeon Ikudabo

1,096312




1,096312













  • If I have the right library, loadModel() takes a URL, not a URI. As in, it expects something in the format of http://www.example.com

    – TheWanderer
    Nov 26 '18 at 23:52











  • @TheWanderer it works with a file path. It can be a File name or URL as you mentioned, because it works with in this case with the Path that I pass to it and it loads the model.

    – Simeon Ikudabo
    Nov 26 '18 at 23:58











  • I'm a bit confused now. Why can't you load from an InputStream and just do model.read(inputStream, null) ?

    – AKSW
    Nov 27 '18 at 8:37








  • 1





    you could also try to migrate the Android Jena port project to latest version if you need some of the new API features and bug fixes. shouldn't be that difficult. Right now, it's at 2.13.0, migration to 3.x might be easy given that it's mostly a Maven setup which relies to original binaries.

    – AKSW
    Nov 27 '18 at 8:41













  • @AKSW thanks for your comment. I think that I’ll try to migrate the port and simply update it. getting The updates features is one way to solve the issue here.

    – Simeon Ikudabo
    Nov 27 '18 at 18:42



















  • If I have the right library, loadModel() takes a URL, not a URI. As in, it expects something in the format of http://www.example.com

    – TheWanderer
    Nov 26 '18 at 23:52











  • @TheWanderer it works with a file path. It can be a File name or URL as you mentioned, because it works with in this case with the Path that I pass to it and it loads the model.

    – Simeon Ikudabo
    Nov 26 '18 at 23:58











  • I'm a bit confused now. Why can't you load from an InputStream and just do model.read(inputStream, null) ?

    – AKSW
    Nov 27 '18 at 8:37








  • 1





    you could also try to migrate the Android Jena port project to latest version if you need some of the new API features and bug fixes. shouldn't be that difficult. Right now, it's at 2.13.0, migration to 3.x might be easy given that it's mostly a Maven setup which relies to original binaries.

    – AKSW
    Nov 27 '18 at 8:41













  • @AKSW thanks for your comment. I think that I’ll try to migrate the port and simply update it. getting The updates features is one way to solve the issue here.

    – Simeon Ikudabo
    Nov 27 '18 at 18:42

















If I have the right library, loadModel() takes a URL, not a URI. As in, it expects something in the format of http://www.example.com

– TheWanderer
Nov 26 '18 at 23:52





If I have the right library, loadModel() takes a URL, not a URI. As in, it expects something in the format of http://www.example.com

– TheWanderer
Nov 26 '18 at 23:52













@TheWanderer it works with a file path. It can be a File name or URL as you mentioned, because it works with in this case with the Path that I pass to it and it loads the model.

– Simeon Ikudabo
Nov 26 '18 at 23:58





@TheWanderer it works with a file path. It can be a File name or URL as you mentioned, because it works with in this case with the Path that I pass to it and it loads the model.

– Simeon Ikudabo
Nov 26 '18 at 23:58













I'm a bit confused now. Why can't you load from an InputStream and just do model.read(inputStream, null) ?

– AKSW
Nov 27 '18 at 8:37







I'm a bit confused now. Why can't you load from an InputStream and just do model.read(inputStream, null) ?

– AKSW
Nov 27 '18 at 8:37






1




1





you could also try to migrate the Android Jena port project to latest version if you need some of the new API features and bug fixes. shouldn't be that difficult. Right now, it's at 2.13.0, migration to 3.x might be easy given that it's mostly a Maven setup which relies to original binaries.

– AKSW
Nov 27 '18 at 8:41







you could also try to migrate the Android Jena port project to latest version if you need some of the new API features and bug fixes. shouldn't be that difficult. Right now, it's at 2.13.0, migration to 3.x might be easy given that it's mostly a Maven setup which relies to original binaries.

– AKSW
Nov 27 '18 at 8:41















@AKSW thanks for your comment. I think that I’ll try to migrate the port and simply update it. getting The updates features is one way to solve the issue here.

– Simeon Ikudabo
Nov 27 '18 at 18:42





@AKSW thanks for your comment. I think that I’ll try to migrate the port and simply update it. getting The updates features is one way to solve the issue here.

– Simeon Ikudabo
Nov 27 '18 at 18:42












1 Answer
1






active

oldest

votes


















0















Here is an example of my code




new byte[10000000] may fail, as you may not have a single contiguous block of memory that big. Plus, you might not have that much heap space to begin with. Use a smaller number, such as 65536.




It takes my application about 10:00 Minutes to download the file when I implement that strategy




The time will vary by hardware. I would not expect it to be that slow on most devices, but it could be on some.




I was wondering if there is a way to access a file and it's path from my assets folder in android studio?




You are running your app on Android. Android Studio is not running on Android. Assets are not files on the Android device. They are entries in the APK file, which is basically a ZIP archive. In effect, your code is unZIPping 170MB of material and writing it out to a file.




If anyone has a solution I will greatly appreciate it.




Work with some people to port over an updated version of Jena that offers reading RDF from an InputStream.



Or switch to some other RDF library.



Or work with the RDF file format directly.



Or use a smaller RDF file, so the copy takes less time.



Or download the RDF file, if you think that will be preferable to copying over the asset.



Or do the asset-to-file copying in a foreground JobIntentService, updating the progress in its associated Notification, so that the user can do other things on their device while you complete the copy.






share|improve this answer
























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53490782%2fload-a-file-from-assets-folder-in-android-studio%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0















    Here is an example of my code




    new byte[10000000] may fail, as you may not have a single contiguous block of memory that big. Plus, you might not have that much heap space to begin with. Use a smaller number, such as 65536.




    It takes my application about 10:00 Minutes to download the file when I implement that strategy




    The time will vary by hardware. I would not expect it to be that slow on most devices, but it could be on some.




    I was wondering if there is a way to access a file and it's path from my assets folder in android studio?




    You are running your app on Android. Android Studio is not running on Android. Assets are not files on the Android device. They are entries in the APK file, which is basically a ZIP archive. In effect, your code is unZIPping 170MB of material and writing it out to a file.




    If anyone has a solution I will greatly appreciate it.




    Work with some people to port over an updated version of Jena that offers reading RDF from an InputStream.



    Or switch to some other RDF library.



    Or work with the RDF file format directly.



    Or use a smaller RDF file, so the copy takes less time.



    Or download the RDF file, if you think that will be preferable to copying over the asset.



    Or do the asset-to-file copying in a foreground JobIntentService, updating the progress in its associated Notification, so that the user can do other things on their device while you complete the copy.






    share|improve this answer




























      0















      Here is an example of my code




      new byte[10000000] may fail, as you may not have a single contiguous block of memory that big. Plus, you might not have that much heap space to begin with. Use a smaller number, such as 65536.




      It takes my application about 10:00 Minutes to download the file when I implement that strategy




      The time will vary by hardware. I would not expect it to be that slow on most devices, but it could be on some.




      I was wondering if there is a way to access a file and it's path from my assets folder in android studio?




      You are running your app on Android. Android Studio is not running on Android. Assets are not files on the Android device. They are entries in the APK file, which is basically a ZIP archive. In effect, your code is unZIPping 170MB of material and writing it out to a file.




      If anyone has a solution I will greatly appreciate it.




      Work with some people to port over an updated version of Jena that offers reading RDF from an InputStream.



      Or switch to some other RDF library.



      Or work with the RDF file format directly.



      Or use a smaller RDF file, so the copy takes less time.



      Or download the RDF file, if you think that will be preferable to copying over the asset.



      Or do the asset-to-file copying in a foreground JobIntentService, updating the progress in its associated Notification, so that the user can do other things on their device while you complete the copy.






      share|improve this answer


























        0












        0








        0








        Here is an example of my code




        new byte[10000000] may fail, as you may not have a single contiguous block of memory that big. Plus, you might not have that much heap space to begin with. Use a smaller number, such as 65536.




        It takes my application about 10:00 Minutes to download the file when I implement that strategy




        The time will vary by hardware. I would not expect it to be that slow on most devices, but it could be on some.




        I was wondering if there is a way to access a file and it's path from my assets folder in android studio?




        You are running your app on Android. Android Studio is not running on Android. Assets are not files on the Android device. They are entries in the APK file, which is basically a ZIP archive. In effect, your code is unZIPping 170MB of material and writing it out to a file.




        If anyone has a solution I will greatly appreciate it.




        Work with some people to port over an updated version of Jena that offers reading RDF from an InputStream.



        Or switch to some other RDF library.



        Or work with the RDF file format directly.



        Or use a smaller RDF file, so the copy takes less time.



        Or download the RDF file, if you think that will be preferable to copying over the asset.



        Or do the asset-to-file copying in a foreground JobIntentService, updating the progress in its associated Notification, so that the user can do other things on their device while you complete the copy.






        share|improve this answer














        Here is an example of my code




        new byte[10000000] may fail, as you may not have a single contiguous block of memory that big. Plus, you might not have that much heap space to begin with. Use a smaller number, such as 65536.




        It takes my application about 10:00 Minutes to download the file when I implement that strategy




        The time will vary by hardware. I would not expect it to be that slow on most devices, but it could be on some.




        I was wondering if there is a way to access a file and it's path from my assets folder in android studio?




        You are running your app on Android. Android Studio is not running on Android. Assets are not files on the Android device. They are entries in the APK file, which is basically a ZIP archive. In effect, your code is unZIPping 170MB of material and writing it out to a file.




        If anyone has a solution I will greatly appreciate it.




        Work with some people to port over an updated version of Jena that offers reading RDF from an InputStream.



        Or switch to some other RDF library.



        Or work with the RDF file format directly.



        Or use a smaller RDF file, so the copy takes less time.



        Or download the RDF file, if you think that will be preferable to copying over the asset.



        Or do the asset-to-file copying in a foreground JobIntentService, updating the progress in its associated Notification, so that the user can do other things on their device while you complete the copy.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 27 '18 at 0:11









        CommonsWareCommonsWare

        782k13919031952




        782k13919031952
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53490782%2fload-a-file-from-assets-folder-in-android-studio%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Tonle Sap (See)

            I get strange results when I access the Sqlitedatabase with Unity C# via XAMPP

            Guatemaltekische Davis-Cup-Mannschaft