Conflixer : A Powerful Tool To Resolve Conflicts Between Extensions

:boom: Conflixer : A Powerful Tool To Resolve Conflicts Between Extensions

A CLI-tool for extension developers and extension users to quickly resolve conflicts between extensions.


image

:floppy_disk: Installation


Note: Before installing Conflixer, make sure that you've JDK 8 or above installed.

:window: Windows


  1. In the PowerShell, run:

    iwr https://raw.githubusercontent.com/jewelshkjony/Conflixer/1.0.0/install.ps1 -useb | iex
    
  2. To run Conflixer write Conflixer on terminal.

:computer: Linux and macOS


  1. In the terminal, run:

    curl https://raw.githubusercontent.com/jewelshkjony/Conflixer/1.0.0/install.sh -fsSL | sh
    
  2. To run Conflixer write chmod +x Conflixer.sh on terminal.

:running_man: Quick start


Now, that you've installed Conflixer, let's try this tool.

  1. Open the terminal and write Conflixer.
    It'll ask you for two prompts.

    • Enter aix to keep: Set the path of the aix or drag the aix file here. The tool will parse this aix as reference.
    • Enter aix to target: Set the path of the aix or drag the aix file here. The tool will target the aix to generate new resolved aix.
  2. Now the tool will build a new resolved aix within a very few seconds.

  3. That's it. Now you can use the new resolved aix and the referenced aix together.


4 Likes

Great :+1::+1:

2 Likes

I believe this will not work for proguarded extensions.

2 Likes

And this is only useful if you are sure both the extensions (that are in conflict) carry same library version.
If not, removing duplicate classes wont fix any runtime errors about to appear (MethodNotFound...)

2 Likes

Normally ProGuarded extensions do not conflict with other extensions when you use the '-repackageclasses' rule.

You are absolutely right. But when we have information about their library version so we can target the below one to prevent the MethodNotFound error. Most of the time it helps.

1 Like

You should rethink about this.

Proguard does not mean that all classes can be/are obfuscated. There are many cases when some classes are required to be kept but they reference obfuscated classes as well.

If anyone tries to use this with my extensions, then good luck. :+1:

2 Likes

Yes, you are right about this. In such cases it might not be able to help.

2 Likes

How to use it?

Developed By Jewel Shikder Jony. (Version: 1.0.0) (Used: 0 times)

Enter aix to keep: "C:\Users\Dell\Downloads\AIX\scanview2.aix"
Enter aix to keep: "C:\Users\Dell\Downloads\AIX"
Enter aix to keep: "C:\Users\Dell\Downloads\AIX\scanview2.aix"
Enter aix to keep: C:\Users\Dell\Downloads\AIX\scanview2.aix
Enter aix to target: C:\Users\Dell\Downloads\AIX/
Enter aix to target: C:\Users\Dell\Downloads\AIX
Enter aix to target: C:\Users\Dell\Downloads\AIX\scanview2.aix

Parsing: scanview2.aix
Parsing: scanview2.aix
Resolving duplicate classes conflicts ...
Deleting temp files ...
Deleting old classes ...
Writing new classes ...

UNEXPECTED TOP-LEVEL EXCEPTION:
java.nio.file.NoSuchFileException: C:\Users\Dell\Downloads\AIX\com.silver.scanview\files\AndroidRuntime.jar
at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
at java.base/sun.nio.fs.WindowsFileAttributeViews$Basic.readAttributes(WindowsFileAttributeViews.java:53)
at java.base/sun.nio.fs.WindowsFileAttributeViews$Basic.readAttributes(WindowsFileAttributeViews.java:38)
at java.base/sun.nio.fs.WindowsFileSystemProvider.readAttributes(WindowsFileSystemProvider.java:197)
at java.base/java.nio.file.Files.readAttributes(Files.java:1853)
at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1445)
at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:724)
at java.base/java.util.zip.ZipFile.(ZipFile.java:251)
at java.base/java.util.zip.ZipFile.(ZipFile.java:180)
at java.base/java.util.zip.ZipFile.(ZipFile.java:194)
at com.jewel.conflixer.repacked.ba.a(Unknown Source)
at com.jewel.conflixer.repacked.ba.f(Unknown Source)
at com.jewel.conflixer.repacked.bO.a(Unknown Source)
at com.jewel.conflixer.repacked.bO.h(Unknown Source)
at com.jewel.conflixer.repacked.bO.a(Unknown Source)
at com.jewel.conflixer.repacked.bO.main(Unknown Source)
at com.jewel.conflixer.Conflixer.main(Unknown Source)
1 error; aborting
PS C:\Windows\system32>

You have already been advised that the scanview extension has not been updated for API34. There is nothing you can do until this happens. Contact the extension developer.

I removed the extension from project also after removed it is showing the errors.
Could you please let me know how i can stop copying after scan in barcode component.

Which scanview version are you using?
Let me know the size/version of the extension as it's working fine for me in SDK34

1 Like

Looks useful Jewel - why is it in General Discussion instead of Extensions?

Thanks for your suggestion. Actually it's not an extension, it's a cli-tool which resolve conflicts and produce a new resolve AIX. If it's in wrong category you might move it to the Extension category or wherever you want.