Trouble Compiling my first app

This is my first time trying to compile an app but I'm having errors.
I have images and a CSV file I load. I recall some discussion about changing file paths when building the app. DO I need to change the file path to the included files?

It appears permissions are what is lacking at the moment. How do I add these permissions?
I want to place this app in the app store or perhaps Fdroid, or even just place it for download on my site. I would appreciate any suggestions. Thank you.

[LoadComponentInfo] INFO: Component "com.google.appinventor.components.runtime.ActivityStarter" does not specify permissionConstraints
[LoadComponentInfo] INFO: Component "com.google.appinventor.components.runtime.Button" does not specify permissionConstraints
[LoadComponentInfo] INFO: Component "com.google.appinventor.components.runtime.File" does not specify permissionConstraints
[LoadComponentInfo] INFO: Component "com.google.appinventor.components.runtime.Form" does not specify permissionConstraints
[LoadComponentInfo] INFO: Component "com.google.appinventor.components.runtime.Image" does not specify permissionConstraints
[LoadComponentInfo] INFO: Component "com.google.appinventor.components.runtime.Label" does not specify permissionConstraints
[LoadComponentInfo] INFO: Component "com.google.appinventor.components.runtime.Notifier" does not specify permissionConstraints
[LoadComponentInfo] INFO: Component "com.google.appinventor.components.runtime.Sound" does not specify permissionConstraints
[LoadComponentInfo] INFO: Component "com.google.appinventor.components.runtime.Spinner" does not specify permissionConstraints
[LoadComponentInfo] INFO: Component "com.google.appinventor.components.runtime.Switch" does not specify permissionConstraints
[LoadComponentInfo] INFO: Component "com.google.appinventor.components.runtime.TableArrangement" does not specify permissionConstraints
[LoadComponentInfo] INFO: Component "com.google.appinventor.components.runtime.TextBox" does not specify permissionConstraints
[LoadComponentInfo] INFO: Component "com.google.appinventor.components.runtime.TinyDB" does not specify permissionConstraints
[LoadComponentInfo] INFO: Component "com.google.appinventor.components.runtime.VerticalArrangement" does not specify permissionConstraints
[LoadComponentInfo] INFO: Component "com.google.appinventor.components.runtime.WebViewer" does not specify permissionConstraints
[LoadComponentInfo] usesLocation = False
[LoadComponentInfo] Permissions needed, n = 7

Usually, compile errors happen much further down.
These look just informational.

Its not producing a file and finishes with:

[RunMultidex] Starting Task
[RunMultidex] ERROR: DX returned an error code
[RunMultidex] Task errored in 35.982 seconds

That error recently got added to

I am using NO extensions

(Canned Reply: ABG- Export & Upload .aia)
Export your .aia file and upload it here.
export_and_upload_aia

Let's take a look.

While I wait for the code server to complete a Clean Up Blocks operation,

have you tried building on the code.appinventor.mit.edu server?

No. I did not know about it. Are there advantages?

The code server allows bigger apps.

Unfortunately, the Build also failed there:

[GenerateClasses] INFO: Source File: appinventor/ai_agetzler/AirCrete_House_Calculator_checkpoint7/Screen1.yail
[GenerateClasses] INFO: Source File: appinventor/ai_agetzler/AirCrete_House_Calculator_checkpoint7/Planning.yail
[GenerateClasses] INFO: Libraries Classpath = /tmp/kawa6029271810648649515.jar:/tmp/acra-4.4.01128535654752018386.jar:/tmp/AndroidRuntime8055132596105454037.jar:/tmp/annotation6705243415651411155.jar:/tmp/appcompat2267850724925151967.jar:/tmp/asynclayoutinflater2261689151567779166.jar:/tmp/collection1247551692845104203.jar:/tmp/constraintlayout6156472927175366880.jar:/tmp/constraintlayout-solver8775059757183206870.jar:/tmp/coordinatorlayout850145535523815776.jar:/tmp/core2080351907319770954.jar:/tmp/core-common8678263987629148668.jar:/tmp/core-runtime846605179615721455.jar:/tmp/cursoradapter2141530129730577917.jar:/tmp/customview572696782772940808.jar:/tmp/documentfile8712513835018224718.jar:/tmp/drawerlayout193087660051464310.jar:/tmp/fragment5160898168785254321.jar:/tmp/interpolator4321980535525475929.jar:/tmp/legacy-support-core-ui5564181463097158312.jar:/tmp/legacy-support-core-utils2916827933987910259.jar:/tmp/lifecycle-common6908826642034904816.jar:/tmp/lifecycle-livedata8148252907528307687.jar:/tmp/lifecycle-livedata-core8417599791531591362.jar:/tmp/lifecycle-runtime5321038549778894304.jar:/tmp/lifecycle-viewmodel4331026044786784019.jar:/tmp/loader731854094611997490.jar:/tmp/localbroadcastmanager4925395246810185668.jar:/tmp/print6548415070559496459.jar:/tmp/slidingpanelayout3670555983936209900.jar:/tmp/swiperefreshlayout5435291541766960701.jar:/tmp/vectordrawable7295966984868860606.jar:/tmp/vectordrawable-animated5642522570096453315.jar:/tmp/versionedparcelable372237762338400009.jar:/tmp/viewpager6482202273227026758.jar:/tmp/1703106428271_0.729563007543488-0/youngandroidproject/../build/classes:/tmp/android8436150708758657530.jar
(compiling appinventor/ai_agetzler/AirCrete_House_Calculator_checkpoint7/Screen1.yail to appinventor.ai_agetzler.AirCrete_House_Calculator_checkpoint7.Screen1)
(compiling appinventor/ai_agetzler/AirCrete_House_Calculator_checkpoint7/Planning.yail to appinventor.ai_agetzler.AirCrete_House_Calculator_checkpoint7.Planning)
(compiling /tmp/runtime8612870397540384625.scm to com.google.youngandroid.runtime)
[GenerateClasses] Task succeeded in 6.289 seconds
[RunMultidex] Starting Task
[RunMultidex] ERROR: DX returned an error code
[RunMultidex] Task errored in 39.209 seconds
.

You have many blocks in the Planning screen.
It bears further review.

Unfortunately there is too many if statement, if disable this procedure it builds just fine on regular server.

bild

unfortunately I can't even zoom out to see the whole thing

1 Like

Hmmm... I will see if I can thin the if statements.. Who knew logic was limited..

1 Like

This app is in serious need of table driven logic.

That would shrink the block count considerably, and increase flexibility in the face of price and material changes.

What might that look like?

This is table driven, though I am using TinyDB NameSpaces to store my tables:

Notice how my Designer knows nothing about the fruit I sell.

Because of the many line items in your app, it would be worth your while to set up some cost tables in a Google Sheet, in preparation for studying how you would build a customer order into one or more sheets.

Perhaps I should just build a list with the item name, price. and quantity. Then I can index my way through to display everything in a textbox. However, I'm not sure how to go about making provisions to enter new prices for items displayed..

That's why I like Google Sheets:

I guess that's what I'm not following. The user needs to be able to enter pricing from their area and not affect change for other users..

Thankyou