Code Monkey home page Code Monkey logo

moneywallet's Introduction

MoneyWallet - Expense Manager [BETA]

License Release Donate

Download from Google Play Get it on F-Droid

Showcase

MoneyWallet is an application designed to help you keep track of your expenses. This repository contains the source code of the latest version, completely rewritten from scratch.

Redistributing this app as your own is NOT permitted.

Table of Contents

  1. History
  2. Donations
  3. Build
  4. FAQ
  5. Credits
  6. License

History

I have been working behind this project for a long time, originally born as a tool to learn Android development, it has evolved over time and has recently been completely revised as a university project for the DIMA course at Politecnico di Milano. As you may have noticed, the previous version on the PlayStore required a small in-app purchase to handle more than just one wallet. The idea was to invest the money earned to pay for my studies, unfortunately among the interest rates of the PlayStore and the local taxes of the individual countries the profit was practically derisory. I did not had the opportunity to continue the development with continuity due to the university and the little free time available. Only recently I had the opportunity to get the project in hand and I decided to make it open source. In this way, anyone who wants can contribute.

Donations

This project is completely free, I decided to completely remove the in-app purchase in favor of a donation policy. It contains no advertising and never will contain it. If you find this application useful you may consider the option of offering me a beer, in real life or through a donation. It would be a very appreciated gesture to support my work.

  • PayPal: https://www.paypal.me/andreale94
  • BTC: 1J3APoaFT2jcqRzpb8bEt2rwUn3mDpWE5U
  • BCH: qzaw9naw5c367r4du2eg6fvmkr7smwagru53lt67zl
  • ETH: 0x4ee996Bf75a89c75B18b4f0509c8c77B87D81392
  • LTC: LZW1AUMWN4BdUvSu8fujEYVLgqWH2HsLZs

Build

You can compile the application very simply: just clone this repository locally to your computer and Android Studio will take care of the rest. You have four different options to build it with two choices. The first choice is which version you want to build:

  • proprietary: this build flavor is designed to integrate Google Drive and Dropbox for a better user experience. It contains proprietary libraries (not open source) and requires the inclusion of valid api-keys to use these services. These keys must be registered in the file called gradle.properties in the root folder of the project before compiling.
  • floss: this build flavor is designed to contain only open source code and for this reason the integration with Google Drive and Dropbox has been removed.

The second choice is which map provider you want to use and you can choose between:

  • gmap: this build flavor uses Google Map as map provider and requires you to provide a valid API-key. This key must be registered in the file called gradle.properties in the root folder of the project before compiling.
  • osm: this build flavor uses OpenStreetMap as map provider.

To decide what kind of build to compile, use the appropriate menu of gradle to choose the desired combination of build flavors. If you want to build only open source code (e.g. for the F-Droid market) you should use 'floss' and 'osm'.

The current release in Google Play Store uses 'proprietary' and 'osm' with some changes to integrate also the Crashlytics framework and the In-App billing library.

FAQ

  1. why does the precompiled binary contain a huge icon pack while there are only a few icons in the source code? The icon pack license clearly states that the icons can not be distributed publicly. If you want to have the same package of icons you will have to buy them on their website. The few icons in the repository come from their small free icon pack with a license that allows their free use.
  2. Is this project still in development? Currently I do not have much time to devote to the project, as already explained I am a university student close to graduation and very busy. I can work on it from time to time but I can't promise continued and lasting support.
  3. Can i contribute to this project? Oh yes! You can freely fork this project and open new pull requests. Translations in other languages are also welcome (you will be credited within the application).

Credits

License

Copyright (c) 2018.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

moneywallet's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

moneywallet's Issues

[bug] cant set specific initial amount

When I try to edit the initial amount of an banking account I m not able to set it to the falue: 4362,65 when I press equal it goes back to the account page and shows 4362,64 ...
Also changing the amount save it and then try ti set it to the falue I and up with 4362.64 ๐Ÿคฃ

Sort the categories

Hi, It would be great to let the users sort the categories and keep the order when adding an expence

Feature Request: Quick add widgets

It would be nice to have a widget that allows you to quickly add expenses. This would basically be a shortcut to the new expense screen in the app (since shortcuts don't seem to be a thing in android anymore).

What I imagine is similar to how 'My budget book' handles it: A simple icon that acts as a shortcut (see screenshots)

photo_2019-01-05_11-01-11
Clicking the red minus icon jumps straight to this screen:

photo_2019-01-05_11-01-13

Hide Sub Categories

Sub categories always remain visible. It'd be better if we can collapse/expand them by tapping on the parent category. Maybe also give an indication (+ sign) that sub categories are available.

net income not displayed correctly

Version 4.0.4.1 of the app:
In the overview of all wallets, the net income is displayed by adding the expenses to the income instead of subtracting them. I did enter expenses as negative values. The transactions are shown in separate diagrams, with red for expenses and green for income, but in the net income diagram, expenses do not exist, and income is too high.
As a result the total sum of what is in a wallet is also too high - very annoying.

It's very possible that this is only happening because of something I did wrong, but in this case maybe it should be clearer how to seperate income and expenses correctly, as I've been at it for quite a while now and still can't see my mistake. Maybe add some documentation?

Great app otherwise -thanks

NPE when updating a place with no geolocation

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'double com.oriondev.moneywallet.model.Coordinates.getLatitude()' on a null object reference
at com.oriondev.moneywallet.ui.activity.NewEditPlaceActivity.onSaveChanges(NewEditPlaceActivity.java:214)
at com.oriondev.moneywallet.ui.activity.NewEditItemActivity.onMenuItemClick(NewEditItemActivity.java:115)
at android.support.v7.widget.Toolbar$1.onMenuItemClick(Toolbar.java:203)
at android.support.v7.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected(ActionMenuView.java:780)
at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:822)
at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:171)
at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:973)
at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:963)
at android.support.v7.widget.ActionMenuView.invokeItem(ActionMenuView.java:624)
at android.support.v7.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:150)
at android.view.View.performClick(View.java:6291)
at android.view.View$PerformClick.run(View.java:24931)
at android.os.Handler.handleCallback(Handler.java:808)
at android.os.Handler.dispatchMessage(Handler.java:101)
at android.os.Looper.loop(Looper.java:166)
at android.app.ActivityThread.main(ActivityThread.java:7425)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)

[bug] app crashes after setting custom theme colors

Hi, i face a really bad bug. I was playing with the settings and also changed the main color or the theme color to a custom value.
After applying the change the app keeps continually crashing and i am not able to reset it because i can't enter the app anymore.
Dalvik & cache cleaning did not work.

I do have root access so it possible you also can point me where to go to change this in the database.

Help is highly appreciated, as I didn't perform a backup until now :(

[Feature Request] Debt repayment description, amount auto-fill

I added a debt entry using the FAB on the Debts page. I can see the newly added debt on the same page. When I click on pay, it takes me to the New transaction page.

I would like it if the description and the amount are pre-filled using the value of the debt which I am paying. Is this supported currently? Thanks!

[discussion] Handling of system categories

Hi all

I would like to discuss the use of the system categories, because there are two usecases where I do face problems with the actual setup:

  1. I do track my overall-expenses with budgets. But if there are transfers from the account it is added to the expenses.

  2. I also plany budget annually. Therefore I have also a budget for paying my debts. But I can't link a budget with a system category or add a different category to a transaction paying my debts.

Regarding the first issue I would like to ask to exclude transfers from showing up in the expenses, but I understand that there are a lot of problems coming with this (for example other system categories, tax, are true expenses). So any idea how to solve that? Are the system categories relevant how the app works today?

Regarding 2. any ideas how to solve? I don't have one ๐Ÿ˜ž

Qif format

Is it possible to have the option to export in Qif format so that the file could be read by Homebank on PC?

Make expenses the default transaction category

Hi AndreAle94 and thanks for this wonderful app. I have a request and sorry if it has already been addressed. When using the application I have 5 income transactions for 200 expenses. I guess it is the usual way things work for people. But when I tap on category, what comes first is "Income".

  1. Is it possible to configure so that "Expenses" appear first ?
  2. Is it possible for the application to "remember" and propose recent categories in a drop down menu ?
    Thanks in advance,
    JewayD

minus sign for expenses

Please add a minus sign to the expense values. Now expense/income is only differentiated by color red/blue. That's hard for people having problems to differentiate colors.

[feature request] add people to recurrencies

Because I want to track to whom my money goes, I would like to ask to introduce the option to add people to a recurrencie.

Thanks in advance, also thanks for making the app open source.

๐Ÿ‘

NPE when adding a file to the BackupFileAdapter

Fatal Exception: java.lang.NullPointerException: Attempt to invoke interface method 'boolean java.util.List.add(java.lang.Object)' on a null object reference
at com.oriondev.moneywallet.ui.adapter.recycler.BackupFileAdapter.addFileToList(BackupFileAdapter.java:66)
at com.oriondev.moneywallet.ui.fragment.secondary.BackupHandlerFragment$8.onReceive(BackupHandlerFragment.java:481)
at android.support.v4.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:311)
at android.support.v4.content.LocalBroadcastManager.access$000(LocalBroadcastManager.java:47)
at android.support.v4.content.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:120)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6186)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)

[wiki] How to spend savings?

Hi I like the savings feature, and use it already a lot. But I don't get how to spend those saveings? With withdraw everything I need to create two transactions??
If this is the planned behavior I would suggest to add the ability to spend the savings directly.

[Feature Request] Transfers

Existing transfer show in both source and destination wallets. New transfers only show in source accounts. Can this feature be redone?

[idea] different handling of savings

Hi I want to suggest a different handling of the savings.

What do you think if you have only one piggy bank and a list of saving goals.

The order of the savings can be changed and if i spend money to the piggy bank it starts to fill the saving goals starting from the top.

But if i change the order the amount spend on the piggy bank fills up again the savings starting from the top.

In my opinion this is great because if there is a change in the priority of your saving goals you don't need to push money around. And you can see the total amount saved in the piggy bank view.

Sorry for my poor english, i hope it is clear what I mean ๐Ÿ˜€

StringIndexOutOfBoundsException during the creation of a TextDrawable icon

Fatal Exception: java.lang.StringIndexOutOfBoundsException: length=0; index=0
at java.lang.String.charAt(String.java)
at com.oriondev.moneywallet.picker.IconPicker.getColorIconString(IconPicker.java:169)
at com.oriondev.moneywallet.picker.IconPicker$1.onTextChanged(IconPicker.java:150)
at android.widget.TextView.sendOnTextChanged(TextView.java:9275)
at android.widget.TextView.handleTextChanged(TextView.java:9353)
at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:12051)
at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1037)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:563)
at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:225)
at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:34)
at android.view.inputmethod.BaseInputConnection.deleteSurroundingText(BaseInputConnection.java:246)
at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:389)
at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:78)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7331)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

[Feature request] Import csv

Hi, could you add an import csv feature ?

Your apps looks great but I use My Budget Book apps for many years, I can't start from scratch with a new apps. Thanks.

[Feature Request] Reccuring Budgets

There are budgets I would like to have on a monthly base, for example food. Therefore it would be great to have the ability to have reccuring budgets.

Cannot edit an existing category that has sub-categories

Replication:

  • create a standard category A
  • create a category B as child of A
  • try to edit the category A

An error occur: "Nested child categories are not supported: this category has one or more children and cannot be updated as child category."

RuntimeException while executing RecurrenceHandlerIntentService in background

An exception is thrown when the RecurrenceBroadcastReceiver is starting the IntentService in background on API Level >= 26.

Fatal Exception: java.lang.RuntimeException: Unable to create application com.oriondev.moneywallet.App: java.lang.IllegalStateException: Not allowed to start service Intent { cmp=com.oriondev.moneywallet/.service.RecurrenceHandlerIntentService }: app is in background uid UidRecord{a82aecc u0a167 RCVR idle change:uncached procs:1 seq(0,0,0)}
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5829)
at android.app.ActivityThread.-wrap1(Unknown Source)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1683)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6650)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:818)

Caused by java.lang.IllegalStateException: Not allowed to start service Intent { cmp=com.oriondev.moneywallet/.service.RecurrenceHandlerIntentService }: app is in background uid UidRecord{a82aecc u0a167 RCVR idle change:uncached procs:1 seq(0,0,0)}
at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1531)
at android.app.ContextImpl.startService(ContextImpl.java:1487)
at android.content.ContextWrapper.startService(ContextWrapper.java:660)
at com.oriondev.moneywallet.broadcast.RecurrenceBroadcastReceiver.startBackgroundTask(RecurrenceBroadcastReceiver.java:145)
at com.oriondev.moneywallet.broadcast.RecurrenceBroadcastReceiver.scheduleRecurrenceTask(RecurrenceBroadcastReceiver.java:54)
at com.oriondev.moneywallet.App.initializeScheduledTimers(App.java:67)
at com.oriondev.moneywallet.App.onCreate(App.java:53)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1120)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5826)
at android.app.ActivityThread.-wrap1(Unknown Source)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1683)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6650)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:818)

[Question] Overview and Categories

I'm using the F-droid version of your app and I must say: It is a great app. Thanks a lot.

When you go to the categoires you have the system tab with "Credit, Credit paid, debt, tax, transfer, etc". How do I do to use them? I would like to "tag" a transition I made as "cash" or "credit card" or "debit card" or "transportation card". Is that the idea behind the system tab under the categories?!

Sorry if I had to open an issue to ask you a question.

Attach any kind of file to a transaction

I tried to attach a picture to my transaction but I could not. What kind of attachments is supported ?
It's a good idea to able to attach pictures ( such as your transaction information paper) to your wallet

Image import - unable to select image

Hi, I was trying to attach an image to an expense using the attachment icon at the top. It opens the android file picker and I navigate to the file, but all my files appear greyed out and I'm unable to select any of them. At first I checked and storage permission wasn't enabled, so I enabled it and even restarted my phone, still the same issue persists.

Is there something I might be doing incorrectly? Any other setting that needs to be enabled?

Also it would be great if we can "share" an image to Money Wallet, which would open the New Transaction page with this image attached. Thanks!

[feature request] split transaction

Hi there are many usecases in my life where I buy things in on shop which belong to different categories - therefore it would be great to split transactions to two or more categories

Toman

We have a currency in Iran called Toman Where the one zeros are removed from the Rials.
Toman is the unofficial currency but common currency in the country
Toman = ุชูˆู…ุงู†
10 Rial = 1 Toman
25000 Rial = 2500 Toman
please add this currency .
thanks
๐ŸŒน

[Feature request] Remember last used currency conversion

Would be very very useful. I regularly need to convert Rupees to Euros, so finding Rupees in a massive list each time often ends up with me going 'why bother' and typing it into duckduckgo.

If the app was to remember the last used conversion and perhaps even allow searching for currencies by text, it would be a big help and a small improvement to your already fantastic app :)

Decimals rounded up in big numbers

Hi, I tried to enter 794197.96 as the initial balance of a new account but it is rounded to 794198.00 which is not accurate enough to allow a clean accounting. The currency is CRC (1/600 : USD).

Thanks

Cannot open TransferModel fragment after adding a transfer model

Fatal Exception: java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
at android.database.CursorWindow.nativeGetString(CursorWindow.java)
at android.database.CursorWindow.getString(CursorWindow.java:438)
at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:51)
at android.database.CursorWrapper.getString(CursorWrapper.java:137)
at android.database.CursorWrapper.getString(CursorWrapper.java:137)
at com.oriondev.moneywallet.ui.adapter.recycler.TransferModelCursorAdapter.onBindViewHolder(TransferModelCursorAdapter.java:78)
at com.oriondev.moneywallet.ui.adapter.recycler.TransferModelCursorAdapter.onBindViewHolder(TransferModelCursorAdapter.java:45)
at com.oriondev.moneywallet.ui.adapter.recycler.AbstractCursorAdapter.onBindViewHolder(AbstractCursorAdapter.java:103)
at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6673)
at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6714)
at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5647)

About Icons

Is it possible for you to provide more icons? Especially for Clothes, Food and Drinks, and Home?

If not then can we have the option to disable icons altogether? Keep it text only? Or ditch the letter(s) within the circles? The icons that have a plain color with letters are really distracting. There's an icon with D for both Debt as well as Deposit! Just the colors are different. Confusing.

Debts tab. Improvement

In the debts tab currently there are two "debt" and "credit".

There should be some sort underline helper for people who arent accounts in the nature of " money you owe" and "money owed to you". This is strictly a quality of life improvement.

Second, either im in "debt or credit" column, clicking on + sign always says " new debt" in both cases. shouldn't money you've lent out say "new credit given" and vice versa?

Also, when there arent any entries in either tabs, the placeholder says " no debt found" for both columns.

Wallet balance is wrong

Hey,

I've noticed that income was counted as if it were a loss of money in the total balance of a wallet for the 4.0.5 version I downloaded on fdroid.

hsignarg

RuntimeException while executing BackupHandlerIntentService in background

An exception is thrown when the AutoBackupBroadcastReceiver is starting the IntentService in background on API Level >= 26.

Fatal Exception: java.lang.RuntimeException: Unable to start receiver com.oriondev.moneywallet.broadcast.AutoBackupBroadcastReceiver: java.lang.IllegalStateException: Not allowed to start service Intent { cmp=com.oriondev.moneywallet/.service.BackupHandlerIntentService (has extras) }: app is in background uid UidRecord{60752f7 u0a219 RCVR bg:+3h12m31s495ms idle change:uncached procs:1 seq(297,297,297)}
at android.app.ActivityThread.handleReceiver(ActivityThread.java:3426)
at android.app.ActivityThread.access$1200(ActivityThread.java:200)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1667)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6718)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

Caused by java.lang.IllegalStateException: Not allowed to start service Intent { cmp=com.oriondev.moneywallet/.service.BackupHandlerIntentService (has extras) }: app is in background uid UidRecord{60752f7 u0a219 RCVR bg:+3h12m31s495ms idle change:uncached procs:1 seq(297,297,297)}
at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1577)
at android.app.ContextImpl.startService(ContextImpl.java:1532)
at android.content.ContextWrapper.startService(ContextWrapper.java:664)
at android.content.ContextWrapper.startService(ContextWrapper.java:664)
at com.oriondev.moneywallet.broadcast.AutoBackupBroadcastReceiver.startBackgroundTask(AutoBackupBroadcastReceiver.java:117)
at com.oriondev.moneywallet.broadcast.AutoBackupBroadcastReceiver.onReceive(AutoBackupBroadcastReceiver.java:91)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:3417)
at android.app.ActivityThread.access$1200(ActivityThread.java:200)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1667)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6718)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

Lint errors during build

Hello,

I'm getting the following errors when running gradle assembleRelease:

> Task :app:lintVitalFlossRelease FAILED
/home/pierre/www/moneywallet/app/src/main/res/values-w600dp/dimens.xml:22: Error: The dimen "layout_multi_panel_app_bar_layout_min_height" in values-w600dp has no declaration in the base values folder; this can lead to crashes when the resource is queried in a configuration that does not match this qualifier [MissingDefaultResource]
    <dimen name="layout_multi_panel_app_bar_layout_min_height">112dp</dimen>
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/pierre/www/moneywallet/app/src/main/res/values-w840dp/dimens.xml:22: Error: The dimen "layout_single_panel_primary_panel_max_width" in values-w840dp has no declaration in the base values folder; this can lead to crashes when the resource is queried in a configuration that does not match this qualifier [MissingDefaultResource]
    <dimen name="layout_single_panel_primary_panel_max_width">640dp</dimen>
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/pierre/www/moneywallet/app/src/main/res/values-w600dp/dimens.xml:23: Error: The dimen "layout_multi_panel_primary_panel_max_width" in values-w600dp has no declaration in the base values folder; this can lead to crashes when the resource is queried in a configuration that does not match this qualifier [MissingDefaultResource]
    <dimen name="layout_multi_panel_primary_panel_max_width">540dp</dimen>
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/pierre/www/moneywallet/app/src/main/res/values-w600dp/dimens.xml:24: Error: The dimen "layout_multi_panel_primary_panel_margin_left" in values-w600dp has no declaration in the base values folder; this can lead to crashes when the resource is queried in a configuration that does not match this qualifier [MissingDefaultResource]
    <dimen name="layout_multi_panel_primary_panel_margin_left">88dp</dimen>
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/pierre/www/moneywallet/app/src/main/res/values-w600dp/dimens.xml:25: Error: The dimen "layout_multi_panel_primary_panel_margin_right" in values-w600dp has no declaration in the base values folder; this can lead to crashes when the resource is queried in a configuration that does not match this qualifier [MissingDefaultResource]
    <dimen name="layout_multi_panel_primary_panel_margin_right">88dp</dimen>
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/pierre/www/moneywallet/app/src/main/res/values-w600dp/dimens.xml:26: Error: The dimen "layout_multi_panel_secondary_panel_elevation" in values-w600dp has no declaration in the base values folder; this can lead to crashes when the resource is queried in a configuration that does not match this qualifier [MissingDefaultResource]
    <dimen name="layout_multi_panel_secondary_panel_elevation">4dp</dimen>
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/pierre/www/moneywallet/app/src/main/res/values-w600dp/dimens.xml:27: Error: The dimen "layout_single_panel_app_bar_layout_min_height" in values-w600dp has no declaration in the base values folder; this can lead to crashes when the resource is queried in a configuration that does not match this qualifier [MissingDefaultResource]
    <dimen name="layout_single_panel_app_bar_layout_min_height">112dp</dimen>
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/pierre/www/moneywallet/app/src/main/res/values-w600dp/dimens.xml:28: Error: The dimen "layout_single_panel_primary_panel_max_width" in values-w600dp has no declaration in the base values folder; this can lead to crashes when the resource is queried in a configuration that does not match this qualifier [MissingDefaultResource]
    <dimen name="layout_single_panel_primary_panel_max_width">540dp</dimen>
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/pierre/www/moneywallet/app/src/main/res/values-w600dp/dimens.xml:29: Error: The dimen "layout_single_panel_primary_panel_margin_left" in values-w600dp has no declaration in the base values folder; this can lead to crashes when the resource is queried in a configuration that does not match this qualifier [MissingDefaultResource]
    <dimen name="layout_single_panel_primary_panel_margin_left">88dp</dimen>
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/pierre/www/moneywallet/app/src/main/res/values-w600dp/dimens.xml:30: Error: The dimen "layout_single_panel_primary_panel_margin_right" in values-w600dp has no declaration in the base values folder; this can lead to crashes when the resource is queried in a configuration that does not match this qualifier [MissingDefaultResource]
    <dimen name="layout_single_panel_primary_panel_margin_right">88dp</dimen>
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/pierre/www/moneywallet/app/src/main/res/values-w600dp/dimens.xml:31: Error: The dimen "layout_single_panel_primary_panel_elevation" in values-w600dp has no declaration in the base values folder; this can lead to crashes when the resource is queried in a configuration that does not match this qualifier [MissingDefaultResource]
    <dimen name="layout_single_panel_primary_panel_elevation">4dp</dimen>
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   Explanation for issues of type "MissingDefaultResource":
   If a resource is only defined in folders with qualifiers like -land or -en,
   and there is no default declaration in the base folder (layout or values
   etc), then the app will crash if that resource is accessed on a device
   where the device is in a configuration missing the given qualifier.

   As a special case, drawables do not have to be specified in the base
   folder; if there is a match in a density folder (such as drawable-mdpi)
   that image will be used and scaled. Note however that if you  only specify
   a drawable in a folder like drawable-en-hdpi, the app will crash in
   non-English locales.

   There may be scenarios where you have a resource, such as a -fr drawable,
   which is only referenced from some other resource with the same qualifiers
   (such as a -fr style), which itself has safe fallbacks. However, this still
   makes it possible for somebody to accidentally reference the drawable and
   crash, so it is safer to create a default dummy fallback in the base
   folder. Alternatively, you can suppress the issue by adding
   tools:ignore="MissingDefaultResource" on the element.

   (This scenario frequently happens with string translations, where you might
   delete code and the corresponding resources, but forget to delete a
   translation. There is a dedicated issue id for that scenario, with the id
   ExtraTranslation.)

11 errors, 0 warnings

Overview for subcategories

Please add a summary for subcategories (when opening a category in "Overview") like it exists already for main categories.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.