Ich versuche, Bindungen für GPUImage Projekt zu erstellen, aber keiner der gebundenen Klassen funktioniert. Zum Beispiel GPUImageView:"Die native Klasse wurde nicht geladen" Fehler mit meinen Bindungen
In ObjC es wie folgt erklärt hat (header in git):
@interface GPUImageView : UIView <GPUImageInput>
//then some fields, properties and methods I'm not interested in
So sieht mein ApiDefinition.cs wie folgt aus:
namespace GPUImage
{
[BaseType (typeof(NSObject))]
[Model]
interface GPUImageInput {
}
[BaseType (typeof(UIView))]
interface GPUImageView : GPUImageInput {
[Export ("initWithFrame:")]
IntPtr Constructor(RectangleF frame);
}
}
LinkWithAttributes:
[assembly: LinkWith ("libGPUImage.a", LinkTarget.Simulator | LinkTarget.ArmV7 | LinkTarget.ArmV7s, ForceLoad = true, Frameworks = "CoreMedia CoreVideo OpenGLES QuartzCore AVFoundation UIKit Foundation")]
Es baut ok und erstellt dll. Aber wenn ich versuche, es zu benutzen in meinem Projekt wie folgt aus:
var iv = new GPUImageView (new RectangleF (0, 0, 100, 100));
Ausnahme throwed:
kann keine nativen Instanz des Typs erstellen ‚GPUImage.GPUImageView‘: die native Klasse hat nicht wurde geladen. Es ist möglich, diese Bedingung zu ignorieren, indem Sie Class.ThrowOnInitFailure auf false setzen.
Nach MonoTouch.ObjCRuntime.Class.ThrowOnInitFailure == false
iv
erstellt wurde, aber unbrauchbar (z AddSubview(iv)
Show nichts).
Ich nehme an, dass etwas mit der Datei GPUImage.a nicht stimmt, aber ich weiß nicht, wie ich es in irgendeiner Weise testen soll.
Here is 7z mit 2 Projekten drin: TryingBindings - Bindungen selbst; TryingGPUImage - verwendete Bindungen;
Vielen Dank im Voraus.
P.S. Here is the link to this post on xamarin forums.
Können Sie die Header-Dateien auf dem Ziel-C-Bibliothek teilen? Ich sehe sie nicht in deiner 7z-Datei. – jonathanpeppers
@jonathanpeppers, https: // github.com/BradLarson/GPUImage/Blob/Master/Framework/Quelle/GPUImageView.h – folex
Funktioniert der leere Konstruktor für Sie? Ich sehe hier keine "Init" -Methoden. – jonathanpeppers