(Editiert, Originaltitel: build.gradle
so konfigurieren dass es mehrere .jar’s z.b. mit org.junit erlaubt, oder das ANT-Skript so einstellen dass es z.B. verhindert ein Verzeichnis org/junit
reinzupacken)
- Also ersteres scheint wieder mal völlig unmöglich zu sein - und zwar für den Fall dass ich bei mehreren selbst gepackten .jar-Libraries (Bis jetzt ein HTTP- sowie ein SMTP-Client) halt noch die für die JUnit-Test erforderlichen Abhängigkeiten „reinpacke“… es ist dann halt der Fall, dass mehrere .jar’s das Verzeichnis
org/junit/...
inne haben.
Dann reklamiert natürlich Android Studio über die versch. JAR-Dateien mit redundanten Daten, klar. Aber da kann man zum exclude
-Parameter im „Rumpf“ von gradle.config’s compile
- oder implementation
-Einträgen wieder mal das halbe Internet durchforsten und man findet im Prinzip nur nicht-funktionierenden Quatsch…
Mit 2 „normalen“ Klammern:
implementation files('libs\\AndroidCompatibleSMTPClient.jar') {
...
}
Mit 4 „normalen“ Klammern:
implementation files(('libs\\AndroidCompatibleSMTPClient.jar')) {
...
}
Was den Inhalt des Rumpfs (also innerhalb von { … }) betrifft, so gibt’s schätzungsweise 27 im Netz beschriebene Varianten - dabei funktioniert KEINE EINZIGE (!!!). Auf das kann ich jetzt nicht weiter eingehen, da ich schätzungsweise 3 Stunden brauchen würde um die ganzen 27 im Internet beschriebenen Möglichkeiten aufzufinden
Was ich bei ANT machen soll, damit es VON ANFANG AN verhindert, irgendwelche Abhängigkeiten reinzupacken ist mir irgendwie auch völlig unklar.
Nun habe ich es jedenfalls so gelöst:
<!-- Custom { -->
<unzip src="${dir.jarfile}/AndroidCompatibleHTTPClient.jar" dest="C:/Windows/Temp/AndroidCompatibleHTTPClient" />
<delete file="C:/Windows/Temp/AndroidCompatibleHTTPClient/LICENSE-junit.txt" />
<delete dir="C:/Windows/Temp/AndroidCompatibleHTTPClient/junit" />
<delete dir="C:/Windows/Temp/AndroidCompatibleHTTPClient/org/junit" />
<delete dir="C:/Windows/Temp/AndroidCompatibleHTTPClient/org/hamcrest" />
<delete dir="C:/Windows/Temp/AndroidCompatibleHTTPClient/org/apache" />
<delete file="AndroidCompatibleHTTPClient.jar" />
<zip basedir="C:/Windows/Temp/AndroidCompatibleHTTPClient" destfile="AndroidCompatibleHTTPClient.jar" />
<delete dir="C:/Windows/Temp/AndroidCompatibleHTTPClient" />
<!-- } Custom -->
Oder aber auch so:
<!-- Custom { -->
<unzip src="${dir.jarfile}/AndroidCompatibleSMTPClient.jar" dest="C:/Windows/Temp/AndroidCompatibleSMTPClient" />
<delete file="C:/Windows/Temp/AndroidCompatibleSMTPClient/LICENSE-junit.txt" />
<delete dir="C:/Windows/Temp/AndroidCompatibleSMTPClient/junit" />
<delete dir="C:/Windows/Temp/AndroidCompatibleSMTPClient/org/junit" />
<delete file="AndroidCompatibleSMTPClient.jar" />
<zip basedir="C:/Windows/Temp/AndroidCompatibleSMTPClient" destfile="AndroidCompatibleSMTPClient.jar" />
<delete dir="C:/Windows/Temp/AndroidCompatibleSMTPClient" />
<!-- } Custom -->
…vielleicht kann mit aber jemand einen „vernünftigeren“ Weg darlegen?
a.) Entweder ein „sauberes“ ANT-Script, bei dem von ANFANG AN verhindert wird dass das Zeugs reingeht - also nix im Nachhinein rauslöschen
ODER
b.) gradle.config so konfiguirieren dass es .jar-Dateien mit mehreren gleichen Einträgen mit .class-Files erlaubt.
Besten Dank für die Feedbacks.