Change external annotations folder in Android Studio 2.2.3 - android-studio

I set the folder for external annotation once in my Android studio. Now, I wanted to change the folder location, following https://www.jetbrains.com/help/idea/2016.3/using-external-annotations.html#d2150916e113 guideline. However, there is no Paths tab...
Does anyone know how to do it? Any config file... whatever!

With reference to this, https://blog.jetbrains.com/idea/2008/02/external-annotations/ I also faced this problem that there is no Paths tab in the Annotations area in the module settings as mentioned in this page.
However, you can edit the .iml in your module folder or .iml in your project folder, depending on whether you want to have externally stored annotations for only a specific module or entire project.
The annotation-paths tag is the one you need to edit.
<annotation-paths>
<root url="file://$MODULE_DIR$" />
</annotation-paths>

I had this same problem, and the other answer didn't help me -- I couldn't find <annotation-paths> anywhere in an .iml file and couldn't find a part of the settings gui to change this.
I noticed that Android Studio would ask me to create a new directory tree for annotations from different libraries. So after hunting around, I found that in <project>/.idea/libraries/<libname>.xml there are <ANNOTATIONS> tags that can be changed.
For most libraries this worked, however I couldn't find any file or <ANNOTATIONS> for the actual classes in the Android SDK.

Android Studio saves it globally, if you want to change it or remove it, close your Android Studio and follow this:
You can search for annotationsPath in
C:\Users\ USER ACCOUNT NAME \.AndroidStudio3.0\config\options\jdk.table.xml
If using another Android Studio version, look for a similar folder.
Inside the jdk.table.xml file, look for it:
<annotationsPath>
<root type="composite">
<root type="simple" url="jar://$APPLICATION_HOME_DIR$/plugins/android/lib/androidAnnotations.jar!/" />
<root type="simple" url="file://..." />
</root>
</annotationsPath>
And change the url="file://... there, or delete the <root type="simple" url="file://..." /> line and Android Studio will ask again next time when needed.

Related

WinUI Using Merged Dictionary from a DLL

I have this requirement where I need to access a resource dictionary defined in a DLL in my project as a merged dictionary. The whole project is setup as a C++/WinRT xaml hosted MFC application. And the required ResourceDictionary is a part of another dll.
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="PathToDict/CommonDictionary.xaml"/>
</ResourceDictionary.MergedDictionaries>
As shown here in the Source property, CommonDictionary.xaml exists as part of another projects binary(dll) and I need to merge that file to my project by specifying the a path to it.
I've already tried something like this although this works only for WPF;
<ResourceDictionary Source="pack://application:,,,/myNameSpace;component/CommonDictionary.xaml"/>
And also tried this after adding a reference to the project;
<ResourceDictionary Source="ms-appx:///MyNamespace/CommonDictionary.xaml"/>
None of these seem to work.
if your file in project directory, try to use
<ResourceDictionary Source="ms-appx:///CommonDictionary.xaml"/>
Generally, you can open any Page.g.i.cs file and see any string with Uri define. For example:
global::System.Uri resourceLocator = new global::System.Uri("ms-appx:///View/Page.xaml");

Image Asset NOT generating ic_launcher_foreground.xml file

I have created all my adaptive icons in the Image Asset tool but its not creating the ic_launcher_foreground.xml file - which in turn is causing my build to fail because the foreground.xml file is being referenced in the ic_launcher.xml and ic_launcher_round.xml files.
I have read many threads on how to resolve this but none of them are working.
As well, both ic_launcher.xml and ic_launcher_round.xml files are specifically referencing these two files:
<background android:drawable="#drawable/ic_launcher_background" />
<foreground android:drawable="#mipmap/ic_launcher_foreground" />
The /drawable folder is being created with the ic_launcher_background.xml file, but the Image Asset tool is not creating a /mipmap folder - it looks to be creating all the other /mipmap-XYZdpi folders and icons.
I bring this up because alot of other threads show the ic_launcher.xml and ic_launcher_round.xml files reference both background.xml and foreground.xml files in the same /drawable folder, unlike mine above.
In Image Asset:
Foreground Tab:
Layer Name: ic_launcher_foreground
Asset Type: image
Path: /dev/myApp/resources/myCustomIcon.png
Background Tab:
Layer Name: ic_launcher_background
Asset Type: image
Path: res/drawable/ic_launcher_background.xml
The only time I can get the ic_launcher_foreground.xml file to appear in the "Output Files" screen is if on the foreground tab I select Asset Type: Clip Art
UPDATE:
I found a ic_launcher_foreground.xml file in a drawable (v24) folder deep in an Android Studio folder related to my project. I copied that file to my projects res/drawable folder - and now I get the Android half robot Icon for my app when it compiles to my test device.
Well, I figured this out - finally. Posting my answer for anyone else that has the same issues.
Using Image Asset tool - ic_launcher_foreground.xml and ic_launcher_background.xml will ONLY be generated if each type (foreground tab/background tab) Asset Type is defined as anything BUT an image type. PNG/JPG asset types do not generate these xml files.
Regardless of Asset Types, both ic_launcher.xml and ic_launcher_round.xml WILL be generated. Both of these xml files simply reference other files, if Asset type is color/art/text - the reference will be to other XML files that will either be in the #drawable/ folder or the #values/ folder.
<background android:drawable="#drawable/ic_launcher_background" /> OR
<background android:drawable="#values/ic_launcher_background" />
//#drawable - is the root of all your drawables folders
// - and references only XML, ie: ie_launcher_background.xml
If the Asset Type is an image (png/jpg) then the reference will be to the newly created png/jpg files that exist in any of the #mipmap folders.
<foreground android:drawable="#mipmap/ic_launcher_foreground" />
// #mipmap is simply root of all your mipmap folders
// references actual png files, ie: ic_launcher_foreground.png
And finally, if you are using Cordova, you need to modify your config.xml to reflect the icon FILES to use:
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
<application android:icon="#mipmap/ic_launcher" android:roundIcon="#mipmap/ic_launcher_round" />
</edit-config>
// this telling the app to find those two XML files in the mipmap-anydpi-v26 folder
// and those files in turn tell the app to find all the png files in the other "mipmap" folders
// if it were this:
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
<application android:icon="#drawable/ic_launcher" android:roundIcon="#drawable/ic_launcher_round" />
</edit-config>
// this telling the app to use the XML files sourced in the drawable folders
// if you used png as foreground and color as background
// ic_launcher.xml/ic_launcher_round.xml would both point to:
// #mipmap/ic_launcher_foreground (ie: png images)
// #drawable/ic_launcher_background (ie: xml files)
I hope this helps others as I feel all of the above is poorly explained in other documentation.
It is very simple now: start "Image Asset Studio" by Right clicking on the "res" or "mipmap" folder and select "New > Image Asset" from the pop-up menu. Image Asset Studio will now open. Now you can create an Adaptive Launcher Icon or Legacy Only Launcher Icon as per your requirements.
To update and existing icon just select your existing ic_launcher_foreground.xml file and ic_launcher_background.xml file and hit "Next" to create the new definitions, overwriting the old ones.
With Windows Explorer go to your project "res" folder where all "ic_launcher files" are stored and delete all "ic_launcher files" first
Now in Android Studio "click on mipmap folder"->"Generate image asset".
It solved the issue for me
Well, what I did... (It often happens that others' solutions who say they finally fixed it never work for me, so I thought I would contribute yet another solution that might only work for me :) )
First I generated the image assets file as-is. I right-clicked on the res folder, clicked "New", then "Image asset". I left the "source asset" path as-is (with the path to the launcher_foreground.xml file in place) and created the assets.
Then I went back and generated the image assets again, but this time with my own png image. Seems to have worked so far, at least until the next update makes this solution obsolete.
On the second page of the asset studio wizard, there is a dropdown called "Res Directory".
I had to select debug before clicking finish. I was able to build after that.
Open your Android Studio and go to your project then
go to android-> app -> scr -> main -> res -> mipmap-anydpi-v26 on
Right click -> New -> image Asset -> Configure image asset -> path ->
mipmap-hdpi -> ic_launcher_foreground.png
Following these steps will solve your problem definitely.

Exception when trying to use icons from Asset Catalog in iOS project with Xamarin TabbedPage

I create a Xamarin Forms project in VS 2017 and started by adding a TabbedPage with three tabs. I then added the icons to the Android (in Resources/drawable) and iOS (Asset Catalogs/Icons) projects.
When I start the project on Android it works fine, but on iOS I get an exception that the UIImage cannot be loaded because initWithCOntentsOfFile returned nil. Which is actually correct, because that's not the correct method to use to access Assets. But it's the TabbedPage calling the method, so I cannot do anything about it.
The TabbetPage looks pretty basic.
<?xml version="1.0" encoding="utf-8" ?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:GreenThumb"
x:Class="GreenThumb.MainPage">
<NavigationPage Title="Today" Icon="current.png">
<x:Arguments>
<local:Current />
</x:Arguments>
</NavigationPage>
<NavigationPage Title="Overview" Icon="overview.png">
<x:Arguments>
<local:Overview />
</x:Arguments>
</NavigationPage>
<NavigationPage Title="Settings" Icon="settings.png">
<x:Arguments>
<local:Settings />
</x:Arguments>
</NavigationPage>
</TabbedPage>
And the Asset Catalog looks like this:
This problem seems to be pretty old, but I haven't found any solutions aside some very dirty hacks.
Is there a clean solution out there? Or do I just have to add all my images in the Resources folder instead of Asset Catalogs?
I struggled in the past on this issue. It seems that icons for tabbed pages are not working in iOS if placed in the .xcassets.
I moved those .png files inside the Resources folder and that made the magic.
I suppose it's a kind of bug on Xamarin.
The same error was occurring to me, and I was putting the images on the .xcassets on iOS.
When I placed the images on the Resources folder, they appeared normally on my TabbedPage.
In the official Xamarin documentation about images, they say to put the images in the Resources folder.
iOS - Place images in the Resources folder with Build Action:
BundleResource. Retina versions of the image should also be supplied -
two and three times the resolution with a #2x or #3x suffixes on the
filename before the file extension (eg. myimage#2x.png).
I place all my images in the .xcassets folder, they apparently work well, but it seems not to work on every case.

Why does my Sharepoint WebPart deploy (nominally), but is still not available for adding to a page/form?

I've created and "deployed" my latest Web Part (Visual Studio grins from ear-to-ear, and tells me, "Deploy succeeded").
But when I go to our Sharepoint site, and my "sandbox" page, and Edit it, I do not see the WebPart. As the Elements file shows, it should be available from the "Financial Affairs Forms" category:
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/" >
<Module Name="PostTravelExpenseWebPart" List="113" Url="_catalogs/wp">
<File Path="PostTravelExpenseWebPart\PostTravelExpenseWebPart.webpart" Url="PostTravelExpenseWebPart.webpart" Type="GhostableInLibrary" >
<Property Name="Group" Value="Financial Affairs Forms" />
</File>
</Module>
</Elements>
However, that category is devoid of the "PostTravelExpenseWebPart" I expect (or at least hope) to see there:
What might I be omitting?
UPDATE
I even went so far as to, while in Edit mode on the Web Page, expand the "Upload a Web Part" section below "Categories" after selecting one of the "Add a Web Part" links. I didn't know exactly what to upload (when browsing for a file, the File Dialog doesn't clue you in on what file extension it expects), so I, on a flayer, tried uploading PostTravelExpense.ascx
It accepted it without balking, but I do not see it anywhere (nor do I know why just the *.ascx file would be enough, but again, which file does it expect?) It doesn't allow me to upload the entire project folder.
UPDATE 2
In response to the comment below, note that The project's Assembly Deployment Target" property is set to GlobalAssembyCache
By comparing a working project with this one, I was finally able to get it to deploy without the "A Web Part or Web Form Control on this Page cannot be displayed or imported. The type could not be found or it is not registered as safe." add-time error msg.
What I had to do was check every place in the working project where the primary namespace was referenced, and make sure that the corresponding namespace in the previously-unworking project was referenced in those same places
This required not only changing some of the files visible in Visual Studio's Solution Explorer treeview, but also two that I only was able to load into the editor by searching for strings they contained, specifically:
The ***.spdata** file, which I loaded up by searching for "SafeControl"
**Assembly.Info**, which I loaded up by searching for "AssemblyTitle"
That sure was a lot of hand-wringing and head-banging and pitiful whin[g]ing for something that one would think would automatically be taken care of by the IDE - when a namespace changes, make all the necessary changes, or at least notify the coder and offer to do so! Or, barring that, at the very least give him a better clue than "A Web Part or Web Form Control on this Page cannot be displayed or imported. The type could not be found or it is not registered as safe." when the WebPart to be plopped onto the page proves unploppable.

Path to layout xml files in magento

I have seen that we can place our layout xml files in
app/design/frontend/default/default/layout
or we can place our customization inside
app/design/frontend/base/default/layout/local.xml
file, but I have read at magebase and at magentocommerce that we can place our layout files under
app/design/frontend/your_interface/your_theme/layout/
or
app/design/frontend/[package]/[theme]/layout
So if we I have package like 'Kaushikamdotcom' in 'app/code/local', should I have to create that same package under 'app/design/frontend/' ? I tried many patterns, but nothing worked out for me.
I am quite sorry that I have made such a blunder asking this question, but I am answering this as lots of people will be making the same mistake. Package means; in the admin side of magento open
System->Configuration->Design
Then change the configuration scope to Main website. Then select Package section, uncheck the default check box and use your package name such as "Test". Then create the following folder structure.
app/design/frontend/Test/default/layout
Place your layout xml files here. If you are using your own themes use that name instead of default.
It depends what layout-xml file you have.
If you want to build up your theme, use the local.xml file in your theme dir.
If you write an extension and want to add a block to use inside this new extension, add a layout-xml file via config.xml and add it under base/default/layout/yourname.xml
When you do it this way, your theme-related changes only appear in the theme and your extension-related changes are theme-independent

Resources