Ich bin relativ neu für Android und j2objc, in der Hoffnung, dass dieses Problem eine einfache Lösung hat. Ich habe ein einfaches Projekt erstellt, um Protobuf Nano in Android zu testen und in Ziel c zu übersetzen. Die App läuft gut in Java-Nachrichten an einen C# Web-Service, aber die Erstellung von übersetzten javanano Klassen in Objective-C schlägt mit dem folgenden Fehler zu senden:j2obj übersetzen von Javanano Protobuf nicht kompilieren
j2objc-0.9.8.2.1/include/J2ObjC_header.h:25:17: error: cannot create __weak reference in file using manual reference counting
id JreStrAppend(__weak id *lhs, const char *types, ...);
Hier ist die build.gradle Datei:
plugins {
id 'java'
id "com.github.j2objccontrib.j2objcgradle" version "0.6.0-alpha"
id "com.google.protobuf" version "0.7.5"
}
sourceSets {
main.java.srcDirs += 'src/main/javanano'
}
dependencies {
// Any libraries you depend on, like Guava or JUnit
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.guava:guava:19.0'
compile 'com.google.protobuf.nano:protobuf-javanano:3.0.0-alpha-5'
testCompile 'junit:junit:4.12'
}
protobuf {
protoc {
artifact = "com.google.protobuf:protoc:3.0.0-beta-2"
}
generateProtoTasks {
all().each { task ->
task.builtins {
remove java
javanano {
option 'java_multiple_files=true'
option 'ignore_services=true'
}
}
}
}
generatedFilesBaseDir = "$projectDir/src"
}
// Plugin settings; put these at the bottom of the file.
j2objcConfig {
// Sets up libraries you depend on
autoConfigureDeps true
// testMinExpectedTests 0
// Omit these two lines if you don't configure your Xcode project with CocoaPods
// xcodeProjectDir '/Users/gabrielchoza/SoftwareDev/NGCalDev/AuthTouchId' // suggested directory name
// xcodeTargetsIos 'IOS-APP', 'IOS-APPTests' // replace with your iOS targets
finalConfigure() // Must be last call to configuration
}
und hier ist eine der foto~~POS=TRUNC:
syntax = "proto3";
option csharp_namespace = "messages";
option java_package = "messages";
message Req {
string client_version = 1;
string client_practice = 2;
string instance_id = 3;
}
Wir verwenden die neueste Version von Xcode: Version 7.3 (7D175) und OS X El Capitan Version 10.11.4
Jede Hilfe wird geschätzt.
Danke für die schnelle Antwort. Das aktuelle (neueste) Grade-Plugin ist "com.github.j2objccontrib.j2objcgradle" Version "0.6.0-alpha" und schlägt fehl, wenn die Version 1.0.2 verwendet wird. Es erfordert 0.9.8.2.1. Wo finde ich ein aktuelleres Plugin, wenn verfügbar? – Gjchoza
Macht nichts. Die Lösung auf der Plugin-Seite gefunden: "skipJ2objctVerification = true" – Gjchoza
700 mb für ein frikken tool ??? @Gjchoza Es ist buchstabiert skipJ2objcVerification – AndroidDev