Xamarin Forms Android apps with shared resources in Visual Studio 2017 Pro?
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#

add a comment |
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#

Hi @ZZZ ,do you useFileProvider
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
add a comment |
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#

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#

c#

asked Jan 1 at 5:53
ZZZZZZ
1,77911424
1,77911424
Hi @ZZZ ,do you useFileProvider
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
add a comment |
Hi @ZZZ ,do you useFileProvider
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
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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