I am looking at android documentation and if I want to use include and merge.
So I opened up eclipse and got it to extract some of the code out and it made in my layout this
<include layout="#layout/progressbar" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
and another file with
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:text="Loading..." android:layout_height="wrap_content" android:layout_width="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:id="#+id/lblLoading" android:layout_marginLeft="180dp" android:layout_marginTop="240dp"></TextView>
<ProgressBar android:id="#+id/progBar" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_marginLeft="130dp" android:layout_marginTop="230dp"></ProgressBar>
</merge>
Yet when I try to do this in monodroid I get errors saying it can't find merge and include.
Do you have "warnings as errors" enabled? For code completion, Mono for Android includes an XSD for .axml files, and the XSD doesn't specify <include/> or <merge/>, and thus Visual Studio will generate a warning when those are used. Mono for Android doesn't care about them, though, and passes them through to aapt.
It would be useful if you could provide the exact error message.
try using
<ProgressBar android:progress.....
And continue, its more along the lines of messing around with different options.
Related
I am migrating Xamarin.Android application from Andorid 9 to Android 10. I have updated all the support packages to Andoridx packages.
In .axml files after changing the android.support.v7.widget.RecyclerView to androidx.recyclerview.widget.RecyclerView , I am getting "Error CS0246 The type or namespace name 'Androidx' could not be found (are you missing a using directive or an assembly reference?)" in the respective .axml.g.cs file.
Attached screenshot of .axml.g.cs file
I have tried deleting obj, bin folders.
Clean, rebuilt the application. Still not resolved.
Could anyone help me resolving this issue?
Thanks in Advance
activity1.axml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#color/backgroundColor">
<include
android:id="#+id/toolbar"
layout="#layout/toolbar" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<include
android:id="#+id/Indicator"
layout="#layout/Indicator" />
<androidx.recyclerview.widget.RecyclerView
android:id="#+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:paddingBottom="#dimen/margin_small"
/>
</FrameLayout>
</LinearLayout>
At first, the namespace is AndroidX.RecyclerView.Widget; not Androidx.
So you can try to add the following code in the .cs file.
using AndroidX.RecyclerView.Widget;
or
private AndroidX.RecyclerView.Widget.RecyclerView _recycler_view;
And then, if it still doesn't work. You can download the nuget package Xamarin.AndroidX.RecyclerView from the package manager.
You should create the android layout file such as:
The cause is the nuget package in your project too old. You can try to use a new package to replace it.
This app has been built and run many times, including many times today, yesterday, etc.
Now, suddenly there are errors with the axml which hasn't changed i a while: One error is supposedly in activity_mail.axml. Most of the time at line 114 but sometimes at line 117.
Either those lines are blank or they contain perfectly valid axml.
Even if I add lines before 114 (or 117), the error is still at 114 or 117 or 113.
The axml is a Linear Layout, with a table layout followed by 8 table rows with contain EditViews, TextViews and Buttons. Much of the time it builds with no problem.
This is axml that (1) hasn't been changed in a while and (2) previous, like earlier today, compiled just fine and ran on my phone just fine.
BUT now I find these groups inserted into the axml (I've watched it happen):
<TextView
android:minWidth="30px"
android:minHeight="30px"
xmlns="http://schemas.android.com/apk/res/android"
android:id="#+id/textView4" />
<TextView
android:minWidth="30px"
android:minHeight="30px"
xmlns="http://schemas.android.com/apk/res/android"
android:id="#+id/textView5" />
<TextView
android:minWidth="30px"
android:minHeight="30px"
xmlns="http://schemas.android.com/apk/res/android"
android:id="#+id/textView6" />
When it happens, there are 5 or 6 groups of them. Always the same. Mostly in groups of 3 and the width and height are always 30px. At the end of the axml sometimes there is one of these one or two lines long. Today this happened over and over.
Today was by far the worst. Each time I rebuild the app, the build fails as these groups are inserted into the axml. Six times today so far.
I've tried deleting the bin and obj folders the Resource.Designer.cs file, but that didn't help.
I'm using VS 2019 (Community) Version 16.3.9 on Windows 10 Enterprise.
I can't make the axml read only as that (for no reason I can understand) causes the build to fail.
I have rebooted my computer, but that changed nothing.
in your axml,each element should contains width and height properties,so you try to change your axml like below :
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="30px"
android:minHeight="30px"
android:id="#+id/textView4" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="30px"
android:minHeight="30px"
android:id="#+id/textView5" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="30px"
android:minHeight="30px"
android:id="#+id/textView6" />
I have created a new android project using Android Studio 3.5.1 using the "Basic Activity" template. But could not get the Design/Text tab rather error messages "Element ...is not allowed here".
The elements are highlighted with red. I do appreciate any help.
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.google.android.material.appbar.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="#style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
android:id="#+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="#style/AppTheme.PopupOverlay" />
</com.google.android.material.appbar.AppBarLayout>
<include layout="#layout/content_main"/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
I have settled it by:
1- Delete "wrapper" folder under ...C:\Users[myUserAcctName].gradle
2- Reload the project and let the Gradle's sync finish (it took 34 minutes).
Then went perfect.
Thanks for those considering an answer.
Research a lot about this issue and found the same question, which doesn't solve my problem. so starting a new question.
Xamarin Android: Android.Views.InflateException - Error when loading Layout
Getting Xamairin forms : Android.Views.InflateException: Timeout exceeded getting exception details when loading layout.
Main.axml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFCDD2"
android:orientation="vertical">
<android.support.design.widget.TextInputLayout
android:id="#+id/input_layout_name"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="#+id/input_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:hint="#string/hint_name" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="#+id/input_layout_email"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="#+id/input_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:hint="#string/hint_email" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="#+id/input_layout_password"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="#+id/input_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:hint="#string/hint_password" />
</android.support.design.widget.TextInputLayout>
<Button
android:id="#+id/btn_signup"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="#string/btn_sign_up"
android:background="#color/colorPrimary"
android:layout_marginTop="40dp"
android:textColor="#android:color/white" />
</LinearLayout>
I have not used layout:width and layout:height properties in my axml and only using an icon having 4kb size.
Please suggest a solution for this issue, thanks in advance...
Getting Xamairin forms : Android.Views.InflateException: Timeout exceeded getting exception details when loading layout.
There are two things needs to be confirmed before using TextInputLayout:
Please make sure, Xamarin.Android.Support.Design lib is correctly referenced in your Xamarin.Android project. If you are using Xamarin.Forms, it should be referenced by default.
Please make sure the Activity is of type Android.Support.V7.App.AppCompatActivity.
If none of the above things help, please provide a basic demo that can reproduce the problem.
Update:
Upon testing on the project you shared. I found you need to use a Theme.AppCompat theme for your activity, you can do that by following below steps:
Create a styles.xml file under Resources\values\ folder with below codes:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
</style>
</resources>
In MainActivity.cs define the Activity attribute to leverage AppTheme like this:
[Activity(Label = "DinexFeedback", MainLauncher = true, Icon = "#drawable/icon",Theme ="#style/AppTheme")]
public class MainActivity : Android.Support.V7.App.AppCompatActivity
{
...
Then the project will run fine.
Unhandled Exception: Android.Views.InflateException:
Make sure the necessary nuget package installed in visual studio.
I used card view in my project, i got this issue becoz i didn't install Xamarin.Android.Support.cardview.
so we should install all support nuget package in order to support all widgets here i use card view.
click on project -> Manage Nuget-> check out the installed pakages, if the package were not installed just search the particular package and then download it.
updated on 10/12/2018
check your layout whether all the layout fields are started with capital letter. for ex : In android we used in small letter but In c# we should use otherwise it throws the inflate view exception.
I am trying to integrate stripe payment gateway in xamarin.android but I have get application closing issue. Here is the sample code what I have tried.
Sample Code:
[assembly: ExportRenderer(typeof(PaymentView), typeof(CardInputActivity)]
namespace SampleProject.Droid.PaymentController
public class CardInputActivity(Bundle bundle) : Activity
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.CardInput);
Helper.StripeView = FindViewById<StripeView>(Resource.Id.stripeLayoutOne);
}
CardInput.axml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="20dp">
<Stripe.StripeView
android:id="#+id/stripeView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp" />
</LinearLayout>
This is the code I have tried. In above 'CardInPutActivity' is the renderer class in android, 'CardInputView' is the layout file in resource folder and 'PaymentView' is the portable class contain view.
Unfortunately I'm not sure what the answer is. It appears the Xamarin Stripe component is several years old now, and may not work any longer. This component was built by Xamarin themselves[1], so contacting them for help may be your best bet.
Beyond that I'd try to go step-by-step through your application with a debugger and/or add some System.out.println() statements to see where things are falling down.
[1] https://components.xamarin.com/view/stripe