Xamarin Forms Android apps with shared resources in Visual Studio 2017 Pro?












0















I have a Xamarin Forms Android app that used a lot png files at different sizes and DPI, being stored under MyApp/Resources/drawable-..dpi etc. So far so good and the App has been deployed and running well.



Now I want to have a variant of MyApp, called MyApp2 which will be sharing most of the codes and resources. So I should do some refactoring, and move the codes and resources to libraries from the app project.



So I had created a Shared Project called AndroidAppShared for storing all the C# codes to be shared, basically platform specific codes, since I have already non-platform specifice codes in .NET Standard libraries. Up to here, MyApp is still running well.



Now I would like to move resources to a library from the app project. So I crate a project of "Android Class Library (Xamarin)" called AndroidAppResources, and make sure the default namespace remain the same as "MyApp" rather than "AndroidAppResources".



I notice that in AndroidAppResources the constants in Resource.designer.cs are declared as



public static int abc_fade_in = 2131034112;


while in MyApp, the constants are declared as



public const int abc_fade_in = 2131034112;


I am not sure if this may be the cause of the problems outlined below.



Then I moved all resources folder in MyApp to AndroidAppResources.



Now MyApp have references to AndroidAppShared and AndroidAppResources, and the build is find. However, when running in an Android device, the app fails at LoadApplication(app):



            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
app = new App();
LoadApplication(app);


complaining about NullReferenceException.



I had suspect that the shared resources is not deployed the the device. However, the splash screen that used a png file in Resources/mipmap-mdpi is actually displayed before LoadApplication(app).



So I am not sure what's going on?



Can you provide some good steps of having shared resources among Xamarin Android apps?
or simply shared resources is not support in Xamarin Forms Android apps?










share|improve this question























  • Hi @ZZZ ,do you use FileProvider to share resource between application? (developer.xamarin.com/api/namespace/Android.Provider)

    – Junior Jiang - MSFT
    Jan 2 at 2:27











  • I don't think Provider is relevant, since the png files are used in the MVVM binding of button icons.

    – ZZZ
    Jan 2 at 7:43
















0















I have a Xamarin Forms Android app that used a lot png files at different sizes and DPI, being stored under MyApp/Resources/drawable-..dpi etc. So far so good and the App has been deployed and running well.



Now I want to have a variant of MyApp, called MyApp2 which will be sharing most of the codes and resources. So I should do some refactoring, and move the codes and resources to libraries from the app project.



So I had created a Shared Project called AndroidAppShared for storing all the C# codes to be shared, basically platform specific codes, since I have already non-platform specifice codes in .NET Standard libraries. Up to here, MyApp is still running well.



Now I would like to move resources to a library from the app project. So I crate a project of "Android Class Library (Xamarin)" called AndroidAppResources, and make sure the default namespace remain the same as "MyApp" rather than "AndroidAppResources".



I notice that in AndroidAppResources the constants in Resource.designer.cs are declared as



public static int abc_fade_in = 2131034112;


while in MyApp, the constants are declared as



public const int abc_fade_in = 2131034112;


I am not sure if this may be the cause of the problems outlined below.



Then I moved all resources folder in MyApp to AndroidAppResources.



Now MyApp have references to AndroidAppShared and AndroidAppResources, and the build is find. However, when running in an Android device, the app fails at LoadApplication(app):



            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
app = new App();
LoadApplication(app);


complaining about NullReferenceException.



I had suspect that the shared resources is not deployed the the device. However, the splash screen that used a png file in Resources/mipmap-mdpi is actually displayed before LoadApplication(app).



So I am not sure what's going on?



Can you provide some good steps of having shared resources among Xamarin Android apps?
or simply shared resources is not support in Xamarin Forms Android apps?










share|improve this question























  • Hi @ZZZ ,do you use FileProvider to share resource between application? (developer.xamarin.com/api/namespace/Android.Provider)

    – Junior Jiang - MSFT
    Jan 2 at 2:27











  • I don't think Provider is relevant, since the png files are used in the MVVM binding of button icons.

    – ZZZ
    Jan 2 at 7:43














0












0








0








I have a Xamarin Forms Android app that used a lot png files at different sizes and DPI, being stored under MyApp/Resources/drawable-..dpi etc. So far so good and the App has been deployed and running well.



Now I want to have a variant of MyApp, called MyApp2 which will be sharing most of the codes and resources. So I should do some refactoring, and move the codes and resources to libraries from the app project.



So I had created a Shared Project called AndroidAppShared for storing all the C# codes to be shared, basically platform specific codes, since I have already non-platform specifice codes in .NET Standard libraries. Up to here, MyApp is still running well.



Now I would like to move resources to a library from the app project. So I crate a project of "Android Class Library (Xamarin)" called AndroidAppResources, and make sure the default namespace remain the same as "MyApp" rather than "AndroidAppResources".



I notice that in AndroidAppResources the constants in Resource.designer.cs are declared as



public static int abc_fade_in = 2131034112;


while in MyApp, the constants are declared as



public const int abc_fade_in = 2131034112;


I am not sure if this may be the cause of the problems outlined below.



Then I moved all resources folder in MyApp to AndroidAppResources.



Now MyApp have references to AndroidAppShared and AndroidAppResources, and the build is find. However, when running in an Android device, the app fails at LoadApplication(app):



            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
app = new App();
LoadApplication(app);


complaining about NullReferenceException.



I had suspect that the shared resources is not deployed the the device. However, the splash screen that used a png file in Resources/mipmap-mdpi is actually displayed before LoadApplication(app).



So I am not sure what's going on?



Can you provide some good steps of having shared resources among Xamarin Android apps?
or simply shared resources is not support in Xamarin Forms Android apps?










share|improve this question














I have a Xamarin Forms Android app that used a lot png files at different sizes and DPI, being stored under MyApp/Resources/drawable-..dpi etc. So far so good and the App has been deployed and running well.



Now I want to have a variant of MyApp, called MyApp2 which will be sharing most of the codes and resources. So I should do some refactoring, and move the codes and resources to libraries from the app project.



So I had created a Shared Project called AndroidAppShared for storing all the C# codes to be shared, basically platform specific codes, since I have already non-platform specifice codes in .NET Standard libraries. Up to here, MyApp is still running well.



Now I would like to move resources to a library from the app project. So I crate a project of "Android Class Library (Xamarin)" called AndroidAppResources, and make sure the default namespace remain the same as "MyApp" rather than "AndroidAppResources".



I notice that in AndroidAppResources the constants in Resource.designer.cs are declared as



public static int abc_fade_in = 2131034112;


while in MyApp, the constants are declared as



public const int abc_fade_in = 2131034112;


I am not sure if this may be the cause of the problems outlined below.



Then I moved all resources folder in MyApp to AndroidAppResources.



Now MyApp have references to AndroidAppShared and AndroidAppResources, and the build is find. However, when running in an Android device, the app fails at LoadApplication(app):



            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
app = new App();
LoadApplication(app);


complaining about NullReferenceException.



I had suspect that the shared resources is not deployed the the device. However, the splash screen that used a png file in Resources/mipmap-mdpi is actually displayed before LoadApplication(app).



So I am not sure what's going on?



Can you provide some good steps of having shared resources among Xamarin Android apps?
or simply shared resources is not support in Xamarin Forms Android apps?







c# android xamarin xamarin.forms






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Jan 1 at 5:53









ZZZZZZ

1,77911424




1,77911424













  • Hi @ZZZ ,do you use FileProvider to share resource between application? (developer.xamarin.com/api/namespace/Android.Provider)

    – Junior Jiang - MSFT
    Jan 2 at 2:27











  • I don't think Provider is relevant, since the png files are used in the MVVM binding of button icons.

    – ZZZ
    Jan 2 at 7:43



















  • Hi @ZZZ ,do you use FileProvider to share resource between application? (developer.xamarin.com/api/namespace/Android.Provider)

    – Junior Jiang - MSFT
    Jan 2 at 2:27











  • I don't think Provider is relevant, since the png files are used in the MVVM binding of button icons.

    – ZZZ
    Jan 2 at 7:43

















Hi @ZZZ ,do you use FileProvider to share resource between application? (developer.xamarin.com/api/namespace/Android.Provider)

– Junior Jiang - MSFT
Jan 2 at 2:27





Hi @ZZZ ,do you use FileProvider to share resource between application? (developer.xamarin.com/api/namespace/Android.Provider)

– Junior Jiang - MSFT
Jan 2 at 2:27













I don't think Provider is relevant, since the png files are used in the MVVM binding of button icons.

– ZZZ
Jan 2 at 7:43





I don't think Provider is relevant, since the png files are used in the MVVM binding of button icons.

– ZZZ
Jan 2 at 7:43












0






active

oldest

votes











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%2f53993295%2fxamarin-forms-android-apps-with-shared-resources-in-visual-studio-2017-pro%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















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%2f53993295%2fxamarin-forms-android-apps-with-shared-resources-in-visual-studio-2017-pro%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

MongoDB - Not Authorized To Execute Command

How to fix TextFormField cause rebuild widget in Flutter

in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith