Android studio assets folder - android

when i try to create a webView in android studio and point it here: file:///src/main/assets/www/index.html, it keeps saying that it can not find the file path.
Thanks in advance.
Mitch

Use file:///android_asset/www/index.html. There is no src/main/assets/ directory on the device -- that is simply how your project is structured. Assets are packaged as part of the ZIP archive that is the APK file; file:///android_asset/ is a means for WebView to pull from the project assets.

Related

how to create folder in android/app/src/main with expo eas?

I'm working on to make android application with react-native and expo.
I'm using library to render some 3d object.
.obj format file need to be in android/app/src/main/assets to use that library.
I can load pictures something like .jpg, .png but .obj.
I don't control the android folder with git because it creates too much different files every time. (git ignored)
expo-file-system library doesn't save the file in exact address that I want(android/app/src/main/assets).
If there is a any way to save file with that library, please tell me.
So I created assets folder after expo build android folder.
Then I put .obj file manually(copy and paste) with my self.
Do I have to create folder manually whenever expo builds android folder?
And even I put my file in assets folder, the file is not showing after eas build .....
Please help

how to put True type font file in assets folder in android studio

I have a True type Fonts file which contains fonts of Rockwell.I need to put it in assets folder in android studio.But i am not able to put it.Can anyone tell how to do this?
Just create assets directory under your main directory of your project (src/main/assets). copy and paste it in that folder and use it.
these links maybe useful for complete information : gradle based projects

How to add a file path for a file input stream in eclipse

I am using eclipse with the android adt. I am trying to initialize a file input stream, the file is in the workspace folder in the folder of my project. Now I have no idea what eclipse assumes to be the root of the project. I keep getting the file not found exception. I put the file in the src folder also and then in the src/com/.... in the folder with all the activity java files but in vain. I also tried giving the absolute path but i get an error:
/C:/Users/hp/Desktop/events.ics: open failed
I read similar questions but somehow, its not working. Any help is deeply appreciated.
I am trying to initialize a file input stream, the file is in the workspace folder in the folder of my project.
Your development machine is not an Android device. Hence, the file is not going to be in the filesystem of an Android device.
If you wish to package files with your app, you can do so as an asset or as a raw resource. You can read more about the assets/ and res/raw/ project directories in the documentation.

how to reference an asset in a library project

In a class belonging to a Library project I call:
webview.loadUrl("file:///android_asset/info.html", null);
Unfortunately, this only works if I duplicate the file info.html into the Application's project asset folder as well.
Is there a way to tell an Android library code: "look for this file in the library's assets folder, not in the application's assets folder" ?
This answer is out of date, the gradle build system and AAR files support assets.
From the Android Docs:
Library projects cannot include raw assets
The tools do not support the use of raw asset files (saved in the assets/ directory) in a library project. Any asset resources used by an application must be stored in the assets/ directory of the application project itself. However, resource files saved in the res/ directory are supported.
If you want to include files from a Library project, you'll need to put it in the resources instead of the assets. If you're trying to load HTML files from your library project into a WebView, this means that you'll have to go a more roundabout method than the usual asset URL. Instead you'll have to read the resource data and use something like loadData.
This is now possible using the Gradle build system.
Testing with Android Studio 0.5.0 and v0.9 of the Android Gradle plugin, I've found that files such as
MyLibProject/src/main/assets/test.html
are correctly packaged in the final application and can be accessed at runtime via the expected URL:
file:///android_asset/test.html
You can achieve this by creating a symbolic link in the project's asset folder that points to the directory in the library project.
Then you can access as below:
webview.loadUrl("file:///android_asset/folder_in_a_libary_project/info.html", null);
Okay. Ive been stressing out and losing sleep about this for a while. Im the type of person that loves API creation, and HATES complicated integration.
There arent many solutions around on the internet, so im quite proud of what Ive discovered with a bit of Eclipse Hackery.
It turns out that when you put a file in the Android Lib's /assets folder. The target apk will capture this and place it on the root of the APK archive. Thus, making general access fail.
This can be resolved by simply creating a Raw Java Library, and placing all assets in there, ie (JAVALIB)/assets/fileX.txt.
You can in turn then include this as a Java Build Path Folder Source in
Project > Properties > Java Build Path > Source > Link Source.
Link Source
Click on Variables. and Add New Variable, ie VAR_NAME_X. location : ../../(relative_path_to_assets_project)
Click Ok
Now, when you build and run your app, the assets folder in the APK will contain your (GLOBAL Library) files as you intended.
No need to reconfigure android internals or nothing. Its all capable within a few clicks of Eclipse.
I confirm that Daniel Grant's approach works for at least the following situation: target project does NOT have an asset folder (or the folder is empty, so you can safely delete it).
I did not setup any variable.
Simply setup a LinkSource as follows (just an example)
Linked folder location: /home/matthew/workspace_moonblink/assetsForAdvocacy/assets
Folder name : assets
The "assetsForAdvocacy" is a Java project, (created with New- Project - Java Project) with empty src folder, and a new folder named "assets", which now provides the entire assets folder for the target project.
This is a fairly straightforward way within Eclipse to provide assets re-use across many different projects IF they do not already have assets, good enough to get going with. I would probably want to enhance it to become a content provider in the long run, but that is a lot more development.
My project accesses the assets with the following code:
String advocacyFolderInAssets = "no_smoking/"; //a folder underneath assets/
String fn =advocacyFolderInAssets+imageFilename;
Bitmap pristineBitmapForAdvocacy = getBitmapFromAsset(context, fn);
I use Motodev Studio 3.1.0 on Ubuntu. It would not let me 'merge' a new assets folder in the new assets-only project onto an existing assets folder in the target project.
If you want to use a setup where multiple derivate products are created from one library you might consider using svn:externals or similar solution in your SCM system. This will also do the trick that static assets like online help may be versioned seperately from the android source code.
I found this older question, it might help you, too.
This is the official way Google uses to archive this (from the above post): Link

Load WebView with .html file linked to /assets folder

I need to load .html file into WebView but this file is situated in external folder on disk. I cannot copy file into /assets folder under my android project. But i can create a link to this file in Eclipse.
The question is how can i load this linked file into WebView?
I tried to load it with webView.loadUrl("file:///android_asset/myFile.html") but it did work. WebView cannot find 'myFile.html' in '/assests' folder. ('myFile.html' link in /assests folder to real file in external folder on disk.)
Please give any idea!!!!
Thanks in advance!
If you are on OS X or Linux, try creating a symlink into your project assets/ for the file in question. I doubt that an Eclipse link will be sufficient, as packaging assets into the APK is not Eclipse's job, and the Android tools invoked by Eclipse may not know about Eclipse links.
For windows use this command mklink /D link-folder-name target-folder. The eclipse/android work fine with this link and your apk will have all the linked resources.

Categories

Resources