There are several list layouts, including Kodular’s own ListViewImageAndText.
but actually the colintreelistview as i have used now to change with other list view it will take a lot of time and even not sure it will succeed or even it can crash alread its lag when i open the blocks section
Do you still have your old apk? Where the extension was working, is your layout similar to Kodular’s ListviewImage and text? Because your blocks don’t seem too complex if you shift to another listview. If your project is really needed don’t add or change anything before exporting it to another aia file as a backup.
After looking here and there I just found another listview
Thanks to our dearly @iamwsumit
You can give it a try remember don’t do experiments in real project ![]()
![]()
![]()
yes i still have the working old apk. i think no the colintree list have a diffrent view and actually at any function like sending the command to print the products list in my app i have used colintreelist view only. yes the blocks are not very complex but at the same time its not in a proper way adjusted like i am using 6 to 7 colintreelist view with aprox 6.5K blocks is it possible to find all the blocks of colintree list view and replace them with the alternative ?? yes its really needed app and important too . ok
yes this is more advance list and perfect too but the problem which i explained.
Unfortunately, you’ll have to go through the process of migrating and testing which one best suits your project and performance. Forget the old extension; these are the risks you run when using extensions.
ColintreeList although it’s open source and could be updated, I don’t think it’s worth the effort.
You have my whatsapp number, contact for solution. Have a good day ![]()
So which means @Gaston mentioned was pointing to the problem
Which seems it’s not able to work in any app updates?
If so it requires the aix owner to update the aix, am away from my laptop, I just have a look in the java you posted from the git, when I study it well I will tell you where to change and what to add, you must call some developers to come in and help you in mean time
yes please , i asked to GPT he guided me some code to replace but i dont know how to export the exntesion file because the colintree list view comes in 1 aix file 2 extension
umm it is very tough for me to like. Complete change the colintreelist with any other extension
Place the .java codes in same path, where you will build the aix, just curious if you ask ChatGpt do have any aix builder environmental? Which will require you to install them and build the aix
I would recommend Fast CLI
Honestly, GPT will break the file. I highly doubt you can just rip it off if you don’t have the knowledge. It’s not just changing one or two lines; it needs much more restructuring.
First of all, I apologize for my previous (useless) reply.
Anyway, to solve this quickly, you could use RecyclerList and create your own custom layout.
There are plenty of guides that can help you.
(It’s not mandatory to use a schema, but it greatly reduces the number of blocks)
In Kodular, the getBitmapDrawableAsync method has been changed from (form, str, callbackPair) to (form, Uri, callbackPair), which is a probable cause of this extension not working.
After studying the code also when @iamwsumit comes in with
I decided to install FAST-CLI on Android Termux. Luckily i successful add modifies in the extension,
Changes i made
Around line 883-920
// ADDED: New helper method to handle async image loading with fallback
private void loadBitmapDrawableAsync(final Form form, final String path,
final AsyncCallbackPair<BitmapDrawable> callback) {
try {
// Try to use the async method if it exists
MediaUtil.getBitmapDrawableAsync(form, path, new AsyncCallbackPair<BitmapDrawable>() {
@Override
public void onFailure(String message) {
callback.onFailure(message);
}
@Override
public void onSuccess(BitmapDrawable result) {
callback.onSuccess(result);
}
});
} catch (NoSuchMethodError e) {
// Fallback to synchronous loading in a background thread
new Thread(new Runnable() {
@Override
public void run() {
try {
final BitmapDrawable bd = MediaUtil.getBitmapDrawable(form, path);
form.runOnUiThread(new Runnable() {
@Override
public void run() {
callback.onSuccess(bd);
}
});
} catch (final IOException e) {
form.runOnUiThread(new Runnable() {
@Override
public void run() {
callback.onFailure(e.getMessage());
}
});
}
}
}).start();
}
}`
Element class - Around line 1140
// CHANGED: From direct MediaUtil.getBitmapDrawableAsync() call to our helper method
if (asyncImageLoad) {
// OLD: MediaUtil.getBitmapDrawableAsync(form, path, ...)
// NEW: Using our fixed helper method
loadBitmapDrawableAsync(form, path, new AsyncCallbackPair<BitmapDrawable>() {
@Override
public void onFailure(String message) {}
@Override
public void onSuccess(final BitmapDrawable result) {
container.$context().runOnUiThread(new Runnable() {
@Override
public void run() {
ViewUtil.setBackgroundDrawable(icon.getView(), result);
}
});
}
});
}
CachedImage class - Around line 1345
// CHANGED: Same fix in CachedImage constructor
if (asyncImageLoad) {
// OLD: MediaUtil.getBitmapDrawableAsync(form, path, ...)
// NEW: Using our fixed helper method
loadBitmapDrawableAsync(form, path, new AsyncCallbackPair<BitmapDrawable>() {
@Override
public void onFailure(String message) {
}
@Override
public void onSuccess(BitmapDrawable result) {
gotBitmapDrawable(result);
}
});
}
It still throw some error, that am not able to bypass in mean time but it works, the error comes when i enabled AsyncImageLoad in designer property, so you can ignore it just enable CachImage

If anyone can step in, i will attach the modified java below
ColinTreeListView.java (61.2 KB)
Aix
cn.colintree.aix.colintreelistview.aix (31.7 KB)
Note
Am not the owner of the extension, i respect the owner Colin
Happy
oding
I dont know much about this but felt good that you are trying your best to fix the extension and make it back to work
It’s a pleasure to help where and how I can as people also helped me before and coming days![]()
![]()
I still polishing/learning things on this earth
I just have something in my plate that I really have to do, else I would say I have finally fixed the whole aix, so you can test the aix and give feedback ![]()
test it thoroughly, I just still investigating here and there
Good day ![]()
![]()
It’s really appreciated that you took the time to dig into the source.
I just have one small request, if you’re okay helping a bit more:
Originally, ColinTreeListView comes as two extensions bundled inside a single AIX (the main ListView + the Element extension).
Would it be possible to keep the exact same structure, package name, and component identity in your modified AIX as well?
The reason is:
- When importing the modified AIX, it should update the existing extension, not appear as a new component
- Existing projects should retain all blocks automatically
- No re-adding components or re-blocking should be required
This would make it a true drop-in update for existing users and help a lot of people who already depend on this extension.
Thanks again for your effort and for sharing your work openly — it really means a lot ![]()
Happy Kodular coding ![]()
![]()
Hie
This is possible though I not able to do that as of today or tomorrow, i have something to do in my plate I don’t think I will have much time to do it, but its definitely possible, maybe someone can do it![]()
![]()
![]()
Regarding to this, I remember there’s a trick of importing extension without the creator. Like exporting your aia to your computer, then unzip it, locates where extension component are, then remove the
From that aia file, then add the new extension back to the zip and save it, I didn’t test this but as of now you can give it a try.
When am free, I will repack the extension as the default extension ![]()
![]()
![]()


