Testing the next release of MIT App Inventor (nb187)

Just for completeness (as I have posted about this elsewhere)

Tested with Firebase realtime database from an app, HTTP PATCH works in all contexts expected of it.
Thank you.

2 Likes

This works

I have been using the wording Map data © OpenStreetMap on my apps. That wording might be more appropriate as only the map data is copyrighted.

mapdata

Thanks,
-- Steve

2 Likes

Is this close to making it into the release ? (component name block)

https://community-appinventor-mit-edu.ezproxy.canberra.edu.au/t/feature-request-return-name-value-of-button-when-clicked/16619/5

3 Likes

We've updated ai2-test today with some additional items:

  • Fix an issue with compiled apps and dropdown blocks
  • Different preview styles when in "Device Default" theme (@Himani's GSOC project)
  • Fix a logical bug in the Ev3Gyro sensor (@BeksOmega)
  • Open all help items in new tabs (@pavi2410)

Regards,
Evan

8 Likes

6 posts were split to a new topic: Change The Design To Make It A Little Bit Modern

I found a small bug in the designer.
When we set the theme "Device default" the appearance of the switch component is correct.

When we set the "Classic" theme then the switch component looks like a checkbox.

5 Likes

It would be nice if you add a drop-down block to Any Components.
Like this-
image

In this image the Image block (Red color) should be kept manually. Can you please make it default so that the user should not need to connect it manually.

1 Like

Yes, that's a good point that the dropdown blocks should also appear in the generic component blocks.

4 Likes

Hello everyone,

ai2-test has been updated with the latest testing version. In addition to the items in the earlier post, this version includes the following changes:

Features:

  • Load tutorials over HTTPS when available (@pavi2410)
  • Implement a select all projects checkbox (@AnujSinghal12)
  • Add MoveToPoint method to ImageSprite (@joysyu)
  • Add UpdateDone event to CloudDB
  • Add TapThreshold property to Canvas to fine-tune touches vs drags (@Himanshu2107)
  • Load built-in templates via the repo URL parameter
  • Implement visual accessibility features for apps (@dunandmuri)
  • Add NumbersOnly property to the PasswordTextBox component (@preetvadaliya)
  • Add project name suggestion when collisions occur (@AKandAK)
  • Add new layouts for ListView items (@ankritisachan)
  • Improve the performance of ListView using the RecyclerView library (@27vinayvyas)
  • Implement scoped file storage needed for Android SDK 30 compatibility

Bug fixes:

  • Fix an issue with loading the Chinese and Brazilian Portuguese translations
  • Fix forum link to point to new community site (@pavi2410)
  • Fix an issue where order of global variables affected project loading
  • Fix an issue where browser extensions interfere with block PNG export
  • Fix a bug that prevents restoring multiple projects from the trash (@AnujSinghal12)
  • Fix an issue where editing a block's text would cancel if a parameter field moved under the cursor (@Siddharth1010)
  • Adjust some CloudDB timeouts for better performance
  • Make deprecation of blocks consistent across block types (@BeksOmega)
  • Make companion code entry textbox a single line only
  • Fix a bug where popping a value from CloudDB would result in a change of datatype
  • Fix a bug where dictionaries would erroneously convert associative lists to dictionaries (@AnujSinghal12)
  • Fix some spelling errors in the documentation (@AnujSinghal12, @HollowMan6, @AKandAK, @preetyvadaliya, @josmas)
  • Fix semantics of the text not equals block
  • Fix a bug where edited files would not be saved to the server correctly
  • Fix a bug where LineString would appear in the design when set to invisible (@Himanshu2107)
  • Fix an internal error when selecting the child of a map component when the map was invisible (@Himanshu2107)
  • Fix a bug where flydowns would not appear unless a variable name was edited first
  • Fix a bug where an internal exception prevented apps with extensions from building correctly
  • Update the Chinese Traditional translation
  • Fix bugs in the helper blocks identified during testing
  • Fix bugs in recyclerview identified during testing

Internal changes:

  • Fix a bug that prevented the companion app from building on Windows
  • Clean up some unused imports (@rupesh-kumar-lpu)
  • Add build tools helper (@pavi2410)
  • Add GitHub actions as an option for continuous integration (@Sander0542)
  • Add some additional metadata to CloudDB tokens
  • Implement a flag to control the use of whitespace in blocks XML
  • Remove vestigial code
  • Fix a locale bug in the development server login page (@HollowMan6)
  • Add buildserver hostname to vars page
  • Add stats collection for build pipeline
  • Add gitattributes to control line endings for unit tests
  • Made the allowed tutorial URLs list a server configuration
  • Add a service expiry notice for test servers
  • Add more unit tests for components (@preetvadaliya)
  • Address out of memory issues in unit tests
  • Change how project settings are managed on the server
  • Implement limited continuations in the component processor and code generator

Please help us test this release and give us feedback on any issues you encounter.

Regards,
Evan W. Patton, Ph.D.
Lead Software Engineer, MIT App Inventor

13 Likes

I did a first test (1-2 with the APK, Android 11):

  1. READ permission:

  1. I am still unable to list the assets.

  2. Companion now declares the following permissions in the Manifest:

Permissions
    <uses-feature android:name="android.hardware.bluetooth" android:required="false"/>
    <uses-feature android:name="android.hardware.location" android:required="false"/>
    <uses-feature android:name="android.hardware.telephony" android:required="false"/>
    <uses-feature android:name="android.hardware.location.network" android:required="false"/>
    <uses-feature android:name="android.hardware.location.gps" android:required="false"/>
    <uses-feature android:name="android.hardware.microphone" android:required="false"/>
    <uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
    <uses-feature android:name="android.hardware.camera" android:required="false"/>
    <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
    <uses-feature android:name="android.hardware.wifi"/>
    <uses-permission android:name="android.permission.READ_CONTACTS"/>
    <uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH"/>
    <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
    <uses-permission android:name="android.permission.CALL_PHONE"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
    <uses-permission android:name="android.permission.NFC"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
    <uses-permission android:name="android.permission.RECEIVE_SMS"/>
    <uses-permission android:name="android.permission.SEND_SMS"/>
    <uses-permission android:name="android.permission.VIBRATE"/>
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.USE_CREDENTIALS"/>
    <uses-permission android:name="android.permission.READ_CALL_LOG"/>
    <uses-permission android:name="android.permission.ACCOUNT_MANAGER"/>
    <uses-permission android:name="com.google.android.apps.googlevoice.permission.RECEIVE_SMS"/>
    <uses-permission android:name="com.google.android.apps.googlevoice.permission.SEND_SMS"/>
    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
    <uses-permission android:name="android.permission.READ_LOGS"/>

So READ & WRITE permissions are now available for all Android versions (except WRITE on Android 11+).

   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
   <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  1. Listing the assets with Companion works.
3 Likes

As I know You Told That your going to add Google Sheets in Next Release

1 Like

hello I am using recyclerview extension on this test server it works fine in companion but after installing apk app always crashed on startup .
I think cardview and recyclyerview libraries are added on this release.

adb logcat info

> Blockquote
07-24 23:25:23.279  5311  5311 E AndroidRuntime: FATAL EXCEPTION: main
07-24 23:25:23.279  5311  5311 E AndroidRuntime: Process: appinventor.ai_himalayanxtiger.RecyclerView, PID: 5311
07-24 23:25:23.279  5311  5311 E AndroidRuntime: java.lang.NoClassDefFoundError: Failed resolution of: Lio/kcz/CustomRecyclerView/Recycler$RecyclerAdapter;
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at java.lang.Class.getDeclaredFields(Native Method)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at gnu.bytecode.ClassType.addFields(ClassType.java:606)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at gnu.bytecode.ClassType.getFields(ClassType.java:506)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at gnu.bytecode.ClassType.hasOuterLink(ClassType.java:260)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at gnu.bytecode.ClassType.getDeclaredMethod(ClassType.java:880)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at gnu.bytecode.ClassType.addMethod(ClassType.java:667)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at gnu.bytecode.ClassType.addMethod(ClassType.java:698)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at gnu.bytecode.ClassType.addMethods(ClassType.java:1009)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at gnu.bytecode.ClassType.getDeclaredMethods(ClassType.java:725)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at gnu.bytecode.ClassType.getMethods(ClassType.java:809)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at gnu.kawa.reflect.ClassMethods.getMethods(ClassMethods.java:106)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at gnu.kawa.reflect.ClassMethods.apply(ClassMethods.java:229)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at gnu.kawa.reflect.Invoke.lookupMethods(Invoke.java:278)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at gnu.kawa.reflect.Invoke.applyN(Invoke.java:185)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at gnu.mapping.ProcedureN.apply2(ProcedureN.java:39)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at appinventor.ai_himalayanxtiger.RecyclerView.Screen1.$define(Screen1.yail:10259)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at com.google.appinventor.components.runtime.Form.onCreateFinish(Form.java:400)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at com.google.appinventor.components.runtime.Form.onCreate(Form.java:345)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at appinventor.ai_himalayanxtiger.RecyclerView.Screen1.onCreate(Screen1.yail:10005)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at android.app.Activity.performCreate(Activity.java:8198)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at android.app.Activity.performCreate(Activity.java:8182)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3765)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3968)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:106)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:246)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:8512)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
07-24 23:25:23.279  5311  5311 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: io.kcz.CustomRecyclerView.Recycler$RecyclerAdapter
07-24 23:25:23.279  5311  5311 E AndroidRuntime: 	... 34 more


and another project logcat

>07-25 00:04:13.405 22634 22634 E AndroidRuntime: FATAL EXCEPTION: main
07-25 00:04:13.405 22634 22634 E AndroidRuntime: Process: appinventor.ai_himalayanxtiger.TestRecView, PID: 22634
07-25 00:04:13.405 22634 22634 E AndroidRuntime: java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/cardview/R$attr;
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at androidx.cardview.widget.CardView.<init>(CardView.java:117)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at androidx.cardview.widget.CardView.<init>(CardView.java:113)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at io.csapps.recyclerview.view.Card.<init>(Unknown Source:1)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at io.csapps.recyclerview.widget.CardView.build(Unknown Source:10)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at io.csapps.recyclerview.ListAdapter.onCreateViewHolder(Unknown Source:6)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at io.csapps.recyclerview.ListAdapter.onCreateViewHolder(Unknown Source:0)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:6794)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5975)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5858)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5854)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2230)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at androidx.recyclerview.widget.GridLayoutManager.layoutChunk(GridLayoutManager.java:557)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1517)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:612)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at androidx.recyclerview.widget.GridLayoutManager.onLayoutChildren(GridLayoutManager.java:171)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3924)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3641)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4194)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.View.layout(View.java:24475)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.ViewGroup.layout(ViewGroup.java:7383)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.View.layout(View.java:24475)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.ViewGroup.layout(ViewGroup.java:7383)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.View.layout(View.java:24475)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.ViewGroup.layout(ViewGroup.java:7383)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.View.layout(View.java:24475)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.ViewGroup.layout(ViewGroup.java:7383)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.View.layout(View.java:24475)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.ViewGroup.layout(ViewGroup.java:7383)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at com.google.appinventor.components.runtime.ScaledFrameLayout.onLayout(ScaledFrameLayout.java:193)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.View.layout(View.java:24475)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.ViewGroup.layout(ViewGroup.java:7383)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.View.layout(View.java:24475)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.ViewGroup.layout(ViewGroup.java:7383)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.View.layout(View.java:24475)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.ViewGroup.layout(ViewGroup.java:7383)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at androidx.appcompat.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:444)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.View.layout(View.java:24475)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.ViewGroup.layout(ViewGroup.java:7383)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.View.layout(View.java:24475)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.ViewGroup.layout(ViewGroup.java:7383)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.View.layout(View.java:24475)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.ViewGroup.layout(ViewGroup.java:7383)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at com.android.internal.policy.DecorView.onLayout(DecorView.java:1225)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.View.layout(View.java:24475)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.ViewGroup.layout(ViewGroup.java:7383)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:4273)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3708)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2631)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9984)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1010)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.Choreographer.doCallbacks(Choreographer.java:809)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.Choreographer.doFrame(Choreographer.java:744)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:995)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.os.Handler.handleCallback(Handler.java:938)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:99)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:246)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:8512)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
07-25 00:04:13.405 22634 22634 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: androidx.cardview.R$attr
07-25 00:04:13.405 22634 22634 E AndroidRuntime: 	... 82 more
2 Likes

Submit your project for testing.

1 Like

Hello,
I would like to make a proposal:
I would set as default the device default theme instead of classic, because I think it gives a more professional look to the apps.
Thank you very much

image

1 Like

Thank you but i cant share project because it contains paid extensions.

I found the solution cardview and recyclerview libraries are only added if we use listview component.
and using defualt listview as invisiable it works .

3 Likes

So make a sample project with no paid extensions that will produce the same error.
Unless you think the problem is with two recyclerview libraries in your project? Perhaps extension developers will have to adapt their extensions to the new ai2.

2 Likes

This class was not found at runtime.

No way extensions can use resource files, as of now.

1 Like

Yes but i tested with decompiling 2 apps ,
One black project and one with listview component

  1. There is no cardview and recyclerview libraries inside androidx folder in blank project
  2. Another one have both files

So i think if any external extension uses cardview and recyclerview we must use defualt listview as dummy

1 Like

New Listview component. When clicking in the "second" textbox you have to click twice to be able to edit the textbox. It is difficult to see in the gif but when you click the first time you can see a cursor appear and then disappear. You have to click a second time so you can edit the textbox. This goes for both textboxes. If you start with Detail Text the problem is with Main Text and vice versa.

When you go back to all ready entered items you always have to click twice in the textbox to edit the text.

5 Likes

Simple example of ListView.

nuevo_visorlista.aia (31.4 KB)

The separating line between two elements is not clear.

4 Likes