Gradule aar Bibliotheksabhängigkeit im Modul: konnte nicht aufgelöst werden

8

Ich bin ein Neuling mit Gradle und ich habe ein Abhängigkeitsproblem. Ich habe die folgende Projektstruktur:

%Vor%

Sowohl MyAppPro als auch MyAppFree hängen von MyAppLibrary ab, was von ThirdPartyLibraryWrapper abhängt. Wie der Name schon sagt, ist ThirdPartyLibraryWrapper ein Wrapper für eine externe Bibliothek, nämlich ThirdPartyLibrary.aar .

Dies ist meine Konfiguration:

build.gradle MyAppPro

%Vor%

build.gradle MyAppLibrary

%Vor%

build.gradle ThirdPartyLibraryWrapper

%Vor%

Wenn die Gradle-Synchronisierung abgeschlossen ist, habe ich diesen Fehler:

%Vor%

Kann mir jemand helfen herauszufinden, wo das Problem liegt?

    
evi 22.07.2015, 08:44
quelle

1 Antwort

30

Die anderen Projekte sehen, dass das :ThirdPartyLibraryWrapper -Projekt von einem Artefakt namens ThirdPartyLibrary-0.1.0:aar abhängt. Java-Bibliotheken (und Android-Bibliotheken) bündeln ihre eigenen Abhängigkeiten nicht miteinander, sondern veröffentlichen lediglich eine Liste ihrer Abhängigkeiten. Das konsumierende Projekt ist dann verantwortlich für das Laden nicht nur der Bibliothek, von der es direkt abhängt, sondern von allen Bibliotheken, auf die diese Bibliothek angewiesen ist.

Der Nettoeffekt davon ist, dass :MyAppFree in :ThirdPartyLibraryWrapper geladen wird, dann sieht man, dass :ThirdPartyLibraryWrapper von ThirdPartyLibrary-0.1.0:aar abhängt und somit versucht, das ebenfalls zu laden. % Co_de% weiß jedoch nicht, wo :MyAppFree lebt .. und so schlägt es fehl.

Die Lösung wird sein, ähnliche ThirdPartyLibrary-0.1.0:aar Blöcke in all Ihren anderen Projekten zu platzieren. Versuchen Sie Folgendes:

%Vor%

Wenn Sie die repositories -Methode verwenden, müssen Sie keine Pfade mehr kodieren und verwenden stattdessen die Gradle-DSL, um den Dateisystempfad aufzulösen, indem Sie das Projekt nachschlagen und die Auflösung dynamisch durchführen lassen.

    
tophyr 22.07.2015, 08:52
quelle

Tags und Links

Django: Verwenden von Annotate, Count und Distinct in einem Queryset ___ qstntxt ___

Ich bin nur beginnend, also bitte vergib mir. Ich habe einen guten Überblick über CodeIgniter, also verstehe ich, was vor sich geht. Ich stelle jedoch fest, dass mein CSRF-Token leer ist, wenn ich ein Formular erstelle. Ich arbeite durch die Laracasts-Videos, um den Laravel-Workflow zu ermüden.

myfile.blade.php

%Vor%

Hier ist, was ich bekomme, wenn ich die Quelle ansehe:

%Vor%

Ich habe das Verzeichnis config durchgesehen, sehe aber nichts, csrf zu aktivieren. Gibt es irgendwo eine zusätzliche Einstellung, die ich aktualisieren muss?

Danke für Ihre Vorschläge.

BEARBEITEN

Auch das gibt mir ein leeres verstecktes Eingabefeld:

%Vor%

BEARBEITEN

So sieht mein Controller aus:

%Vor%

Also sieht mein aktuelles Formular-Tag so aus:

%Vor%

Wenn ich absende, kann ich die json-Antwort sehen - der Token ist offensichtlich leer.

%Vor%     
___ answer34422779 ___

Es sollte

sein %Vor%     
___ answer35710859 ___

Ich habe das Problem des HtmlService-Anbieters behoben. 5.2 Version entfernt Illuminate und add kollektiv folgen dem Schritt, um das Problem zu lösen:

  1. %code%
  2. %code%
  3. Fügen Sie in config / app.php
  4. hinzu

%code%

Dann können Sie dieses Formular verwenden.

    
___ tag123laravel ___ Laravel ist ein Open-Source-PHP-Web-Framework, das dem MVC-Muster folgt. ___ tag123csrf ___ Cross Site Request Forgery ist ein böswilliger Angriff, um die Vertrauenswürdigkeit einer Website in den Browser eines Benutzers auszunutzen. ___ answer37181006 ___

Wenn Sie eine Anmeldeseite haben und die Sitzung mit folgendem Befehl löschen möchten:

%Vor%

Vergessen Sie nicht, dass dies auch das csrf-Token bereinigt, bevor es in die Ansicht eingefügt werden kann

    
___ answer34423700 ___

Dies ist ein Konfigurationsproblem. Sie müssen den App-Schlüssel in Ihrer Konfigurationsdatei %code% auf eine Zeichenfolge mit 32 Zeichen setzen oder artisan cli %code% verwenden, um den Schlüssel für Sie zu generieren, damit Sie das CSRF-Token verwenden können.

Stellen Sie außerdem sicher, dass Sie Routen einschließen, die das CSRF-Token in der Gruppenroute %code% verwenden.

  

Sie können URIs ausschließen, indem Sie ihre Routen außerhalb der Web-Middleware-Gruppe definieren, die in der Standarddatei routes.php enthalten ist, oder indem Sie die URIs der Eigenschaft $ exert der VerifyCsrfToken-Middleware hinzufügen: Ссылка

    
___ answer34423476 ___

Die Laravel Grundlegende Reihe ist für Laravel 5.0, also hast du ein paar Optionen. Sie können Laravel 5.0 installieren, um mit dieser Serie fortzufahren. Um L5.0 zu installieren, müssen Sie diesen Befehl ausführen:

%Vor%

Wenn du Laravel 5.2 benutzen willst (was ich empfehlen würde und Jeffrey Way wird höchstwahrscheinlich bald eine Serie veröffentlichen), gibt es einige zusätzliche Dinge, die du beachten solltest.

Stellen Sie zuerst alle Ihre Routen in eine "Web" -Middleware-Gruppe wie folgt:

%Vor%

In der Vergangenheit gab es mehrere Middlewares, die bei jeder Anfrage standardmäßig ausgeführt wurden. In 5.2 ist dies nicht mehr der Fall. Zum Beispiel wird das Token in der Sitzung gespeichert, aber in 5.2 werden Dinge wie die Middleware "StartSession" nicht automatisch angewendet. Daher muss die "Web" -Middleware auf Ihre Routen angewendet werden. Der Grund für diese Änderung in 5.2:

  

Middleware-Gruppen ermöglichen es Ihnen, mehrere Routen-Middleware unter einem einzigen, komfortablen Schlüssel zu gruppieren, sodass Sie einer Route mehrere Middleware gleichzeitig zuweisen können. Dies kann beispielsweise nützlich sein, wenn Sie eine Web-Benutzeroberfläche und eine API in derselben Anwendung erstellen. Sie können die Session- und CSRF-Routen in eine %code% -Gruppe und vielleicht den Ratenbegrenzer in der %code% -Gruppe gruppieren.

Auch in der Laravel Fundamental-Serie zieht Jeffrey das "illuminate / html" -Paket ein, aber jetzt benutzen die meisten Leute das Laravel-Sammelpaket. Sie behandeln eine Menge der Laravel-Pakete, die aus dem Kern herausgenommen werden. Als Ergebnis würde ich das "illuminate / html" -Paket entfernen. Entfernen Sie in Ihrer %code% -Datei %code% (oder was auch immer im Abschnitt require steht). Entfernen Sie außerdem den entsprechenden Dienstanbieter und erstellen Sie Fassaden, die Sie Ihrer %code% -Datei hinzugefügt haben.

Um die Laravel-Kollektivversion zu installieren, fügen Sie diese in Ihrer %code% -Datei hinzu: %code% . Führen Sie dann %code% aus. Sobald dies geschehen ist, fügen Sie dies in Ihrer %code% -Datei Ihrem Provider-Array hinzu:

%Vor%

und fügen Sie dies Ihrem Alias-Array hinzu:

%Vor%

Ich hoffe, ich verpasse nichts anderes.

    
___