Android Aidl Kompilierfehler: Import für Klasse nicht gefunden

8

( Ich weiß, dass es mehrere Fragen zu stackoverflow und anderswo gibt (wie google group) zum Hinzufügen von parcelable für NetworkInfo, aber darum geht es nicht. )

Meine Arbeit befindet sich unter $ (AOSP_ROOT) / device / und beinhaltet mehrere aidl -Dateien. einer davon ist wie,

%Vor%

Und ein anderer Aidl ist wie,

%Vor%

Und ich bekomme Kompilierfehler wie,

%Vor%

Ich frage mich, es ist die Reihenfolge der Verarbeitung von aidl-Dateien. Mein Android.mk sieht so aus,

%Vor%

Dieser Build-Fehler wird eingeführt, nachdem ich die aidl-Dateien aus src / folder in aidl / folder verschoben habe (aus irgendeinem Grund muss ich das tun). Es hat vorher funktioniert, aber jetzt, selbst wenn ich es zurück in den Ordner src / verschoben habe, funktioniert es nicht mehr. Ich habe versucht, $ (AOSP_ROOT) / out / device / target aufzuräumen, aber es hilft nicht.

Ideen?

    
Chundong Wang 25.11.2014, 23:47
quelle

4 Antworten

7

Endlich habe ich es gelöst.

Wenn Sie sich in /build/core/base_rules.mk vertiefen, werden Sie feststellen, dass LOCAL_AIDL_INCLUDES tatsächlich die Ordner sind, die während der AIDL-Kompilierungsphase zusätzlich zu den Standardordnern wie Framework oder so aufgenommen werden sollen.

%Vor%

In diesem speziellen Fall ist das, was Sie wollen, tatsächlich

%Vor%     
Chundong Wang 10.12.2014, 18:39
quelle
3
___ qstnhdr ___ Android Aidl Kompilierfehler: Import für Klasse nicht gefunden ___ answer27408433 ___

Endlich habe ich es gelöst.

Wenn Sie sich in %code% vertiefen, werden Sie feststellen, dass %code% tatsächlich die Ordner sind, die während der AIDL-Kompilierungsphase zusätzlich zu den Standardordnern wie Framework oder so aufgenommen werden sollen.

%Vor%

In diesem speziellen Fall ist das, was Sie wollen, tatsächlich

%Vor%     
___ answer37972719 ___

Ok, also habe ich tagelang versucht, das gleiche Problem herauszufinden. Clean / Rebuilds funktionierte nicht für mich. Schließlich habe ich einen wirklich einfachen Fehler bemerkt, den ich in Android Studio gemacht habe: Als ich mit der rechten Maustaste auf meine Maus klickte und eine neue "AIDL" erstellte, klickte ich nicht in den entsprechenden Ordner wie meine ursprünglichen Modellklassen.

Zum Beispiel war mein Modell in einem Java-Paket namens com.example.model, aber ich habe nicht richtig in diesen Ordner geklickt, als ich meine AIDL erstellte. Wenn also Android Studio den AIDL-Ordner für mich generiert, würde er auf den falschen Ordner verweisen, und ich würde mit einem Kompilierungsfehler enden. Ich wünschte, die Android-Dokumentation würde klarstellen, dass wir vor dem Erzeugen der AIDL-Dateien mit der rechten Maustaste in den entsprechenden Ordner klicken müssen. Ich weiß, es klingt albern, aber ich hoffe, diese Antwort trifft auf einige von euch zu!

    
___ answer3160814 ___

Also habe ich mich umgeschaut - die Lösung besteht darin, die AIDL-Dateien nur in ihr eigenes Verzeichnis namens aidl zu legen, von dem ich glaube, dass es einige andere vorgeschlagen haben.

Es stellt sich heraus, dass Android Studio dort aussieht, aber nicht genau weiß, was mit .aidl-Dateien im src-Verzeichnis zu tun ist.

Ich verstehe es nicht. Ich verstehe es einfach nicht. AIDL Importe funktionierten perfekt in Eclipse. Android Studio ist nicht produktionsbereit. Dies ist ein großer Schritt zurück.

Ich hatte Probleme, den AIDL-Compiler dazu zu bringen, Importe zu finden, und ich denke, dass es einen besseren Weg geben muss, als base_rules.mk zu modifizieren, das die Plattform verwaltet.

Arg!

    
___ tag123aidl ___ Android Interface Definition Language ist eine spezielle Sprache, die es einem Server und einem Client ermöglicht, eine Schnittstelle für Inter Process Communication (IPC) einzurichten. ___ tag123android ___ Android ist das mobile Betriebssystem von Google, das zum Programmieren oder Entwickeln von digitalen Geräten (Smartphones, Tablets, Automobile, Fernseher, Wear, Glass, IoT) verwendet wird. Verwenden Sie für Themen rund um Android Android-spezifische Tags wie android-intent, nicht intent, android-activity, nicht activity, android-adapter, nicht adapter usw. Bei anderen Fragen als der Entwicklung oder Programmierung, aber im Zusammenhang mit Android Framework, verwenden Sie Der Link: https://android.stackexchange.com. ___ qstntxt ___

( Ich weiß, dass es mehrere Fragen zu stackoverflow und anderswo gibt (wie google group) zum Hinzufügen von parcelable für NetworkInfo, aber darum geht es nicht. )

Meine Arbeit befindet sich unter $ (AOSP_ROOT) / device / und beinhaltet mehrere aidl -Dateien. einer davon ist wie,

%Vor%

Und ein anderer Aidl ist wie,

%Vor%

Und ich bekomme Kompilierfehler wie,

%Vor%

Ich frage mich, es ist die Reihenfolge der Verarbeitung von aidl-Dateien. Mein Android.mk sieht so aus,

%Vor%

Dieser Build-Fehler wird eingeführt, nachdem ich die aidl-Dateien aus src / folder in aidl / folder verschoben habe (aus irgendeinem Grund muss ich das tun). Es hat vorher funktioniert, aber jetzt, selbst wenn ich es zurück in den Ordner src / verschoben habe, funktioniert es nicht mehr. Ich habe versucht, $ (AOSP_ROOT) / out / device / target aufzuräumen, aber es hilft nicht.

Ideen?

    
___ answer38344778 ___

muss nur die .aidl-Datei als die gleiche Datei wie die .java-Datei benennen!

    
___
Coder Roadie 16.10.2015 00:47
quelle
0

Ok, also habe ich tagelang versucht, das gleiche Problem herauszufinden. Clean / Rebuilds funktionierte nicht für mich. Schließlich habe ich einen wirklich einfachen Fehler bemerkt, den ich in Android Studio gemacht habe: Als ich mit der rechten Maustaste auf meine Maus klickte und eine neue "AIDL" erstellte, klickte ich nicht in den entsprechenden Ordner wie meine ursprünglichen Modellklassen.

Zum Beispiel war mein Modell in einem Java-Paket namens com.example.model, aber ich habe nicht richtig in diesen Ordner geklickt, als ich meine AIDL erstellte. Wenn also Android Studio den AIDL-Ordner für mich generiert, würde er auf den falschen Ordner verweisen, und ich würde mit einem Kompilierungsfehler enden. Ich wünschte, die Android-Dokumentation würde klarstellen, dass wir vor dem Erzeugen der AIDL-Dateien mit der rechten Maustaste in den entsprechenden Ordner klicken müssen. Ich weiß, es klingt albern, aber ich hoffe, diese Antwort trifft auf einige von euch zu!

    
Ryan 22.06.2016 15:41
quelle
0

muss nur die .aidl-Datei als die gleiche Datei wie die .java-Datei benennen!

    
chengxs 13.07.2016 07:05
quelle

Tags und Links