eine Methode schreiben, die ein Socket ausgibt ?!

  • Antworten:5
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 41

08.10.2016 10:46:48 via Website

Hallo,

ich versuche eine Methode zu schreiben, die einen Socket erzeugt und zurückgibt. Dies soll Teil einer Extension für den AppInventor2 werden. Nun habe ich hier ein Problem. Ich habe das Problem in dem AppInventor-Forum beschrieben, dort aber keine Antwort erhalten (hätte ich mich doch gleich hier gemeldet). Ich poste hier einfach mal den gleichen Inhalt, mit der Hoffnung, dass mir hier jemand weiterhelfen kann. Deswegen auf englisch, ich hoffe das ist kein Problem?

Hi,

this simple code

@SimpleFunction(description = "Gibt Socket")
public Socket GiveSocket(String ip, int port){
Socket socket2;
try {socket2 = new Socket(ip, port);
} catch (IOException e) {
e.printStackTrace();}
return socket2;
}

is supposed to make method within an extension to return a socket.

But during compiling, I get the error "variable socket2 might not have been initialized" which is, because initialize the socket inside try{}. But if I initialize it before try{}, I then get the error "Exception IO is never thrown in body of corresponding try statement". So what can I do to satisfy the compiler? To prevent both errors, I thought I could do this:

Socket socket2 = new Socket;

try {socket2.connect(ip, port);
}...

now the exception throwing connection establishing should be in the try{} statement, and the socket2 variable, which is to be returned, is initialized outside of try{}. Unfortunately, this wont work either, because the connect() method wants a SocketAdress parameter not a IP-String... :-(

Any idea how I could fix this?

Is it bulls*** in general to make a method which returns a Socket? Or is it possible?

Thank you

  • Forum-Beiträge: 2.214

08.10.2016 11:54:57 via Website

Hallo Arne,

ich kenne mich zwar nicht mit dem AppInventor aus, aber aus Native-Sicht gesehen, gehört (MUSS) sowas in einen Thread/Task.

Dann :

Socket socket2 = new Socket();

oder

Socket socket2 = new Socket(dstAddress, dstPort);

lg
Stefan

— geändert am 08.10.2016 12:24:15

Liebe Grüße - Stefan
[ App - Entwicklung ]

  • Forum-Beiträge: 41

08.10.2016 15:39:32 via Website

Hey Stefan,

ja, du hast absolut recht. Die () habe ich im Code auch, habe nur vergessen sie hier zu übernehmen.

Also ich bin in einer Zwickmühle. Für return socket2 muss socket2 außerhalb von try{} initialisiert werden. Aber die Verbindung darf nur in try{} aufgebaut wegen, wegen den Exceptions.

Ich muss also irgendwie die Vorgänge trennen. Ich kenne allerdings nur die Möglichkeit, die Verbindung mit der Initialisierung gemeinsam aufzubauen mit new Socket(ip, port). Also dachte ich an socket.connect(), aber diese Methode nimmt den ip-String nicht an, da sie eine Socketadresse-Variable möchte.

Ich konnte etwas Abhilfe mit InetSocketAddress(String host, int port) aus java.net.InetSocketAddress schaffen. Nun bekomme ich aber eine Compilerfehlermeldung, die mir nicht viel sagt. Kannst du deuten, wo das Problem liegen könnte?

kirikiri3s-macbook-pro:~ kirikiri3$ cd documents/ma/appinventor
-bash: cd: documents/ma/appinventor: No such file or directory
kirikiri3s-macbook-pro:~ kirikiri3$ cd documents
kirikiri3s-macbook-pro:documents kirikiri3$ cd mai
kirikiri3s-macbook-pro:mai kirikiri3$ cd appinventor
kirikiri3s-macbook-pro:appinventor kirikiri3$ ant extensions
Buildfile: /Users/kirikiri3/Documents/mai/appinventor/build.xml

extensions:

clean:
[delete] Deleting directory /Users/kirikiri3/Documents/mai/appinventor/build/components
[delete] Deleting directory /Users/kirikiri3/Documents/mai/appinventor/components/build
[delete] Deleting directory /Users/kirikiri3/Documents/mai/appinventor/components/reports

init:

common_CommonUtils:

init:

CommonUtils:

common_CommonVersion:

init:

CommonVersion:
[exec] Result: 1
[exec] Result: 1

CopyToRunLibDir:

components_AndroidRuntime:

init:
[mkdir] Created dir: /Users/kirikiri3/Documents/mai/appinventor/build/components
[mkdir] Created dir: /Users/kirikiri3/Documents/mai/appinventor/components/build
[mkdir] Created dir: /Users/kirikiri3/Documents/mai/appinventor/components/build/classes
[mkdir] Created dir: /Users/kirikiri3/Documents/mai/appinventor/components/reports
[mkdir] Created dir: /Users/kirikiri3/Documents/mai/appinventor/components/reports/raw
[mkdir] Created dir: /Users/kirikiri3/Documents/mai/appinventor/components/reports/html

CommonConstants:
[mkdir] Created dir: /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/CommonConstants
[javac] Compiling 6 source files to /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/CommonConstants
[javac] warning: [options] bootstrap class path not set in conjunction with -source 1.5
[javac] warning: [options] source value 1.5 is obsolete and will be removed in a future release
[javac] warning: [options] target value 1.5 is obsolete and will be removed in a future release
[javac] warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
[javac] 4 warnings
[javac] Creating empty /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/CommonConstants/com/google/appinventor/components/common/package-info.class
[jar] Building jar: /Users/kirikiri3/Documents/mai/appinventor/build/components/CommonConstants.jar
[jar] Building jar: /Users/kirikiri3/Documents/mai/appinventor/build/components/CommonConstants-gwt.jar

HtmlEntities:
[mkdir] Created dir: /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/HtmlEntities
[javac] Compiling 1 source file to /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/HtmlEntities
[javac] warning: [options] bootstrap class path not set in conjunction with -source 1.5
[javac] warning: [options] source value 1.5 is obsolete and will be removed in a future release
[javac] warning: [options] target value 1.5 is obsolete and will be removed in a future release
[javac] warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
[javac] 4 warnings
[jar] Building jar: /Users/kirikiri3/Documents/mai/appinventor/components/build/HtmlEntities.jar

common_CommonVersion:

init:

CommonVersion:
[exec] Result: 1
[exec] Result: 1

AndroidRuntime:
[mkdir] Created dir: /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/AndroidRuntime
[javac] Compiling 210 source files to /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/AndroidRuntime
[javac] warning: [options] bootstrap class path not set in conjunction with -source 1.5
[javac] warning: [options] source value 1.5 is obsolete and will be removed in a future release
[javac] warning: [options] target value 1.5 is obsolete and will be removed in a future release
[javac] warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] Note: Some input files use unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] 4 warnings
[javac] Creating empty /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/AndroidRuntime/com/google/appinventor/components/runtime/util/package-info.class
[javac] Creating empty /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/AndroidRuntime/com/google/appinventor/components/runtime/collect/package-info.class
[javac] Creating empty /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/AndroidRuntime/com/google/appinventor/components/annotations/package-info.class
[javac] Creating empty /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/AndroidRuntime/com/google/appinventor/components/runtime/package-info.class
[javac] Creating empty /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/AndroidRuntime/com/google/appinventor/components/runtime/errors/package-info.class
[jar] Building jar: /Users/kirikiri3/Documents/mai/appinventor/build/components/AndroidRuntime.jar

components_Barcode:

Barcode:
[mkdir] Created dir: /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/Barcode
[javac] Compiling 40 source files to /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/Barcode
[javac] warning: [options] bootstrap class path not set in conjunction with -source 1.5
[javac] warning: [options] source value 1.5 is obsolete and will be removed in a future release
[javac] warning: [options] target value 1.5 is obsolete and will be removed in a future release
[javac] warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] Note: Some input files use unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] 4 warnings
[jar] Building jar: /Users/kirikiri3/Documents/mai/appinventor/build/components/Barcode.jar

components_ComponentList:

init:

CommonConstants:

ComponentProcessingLib:
[mkdir] Created dir: /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/ComponentProcessingLib
[javac] Compiling 15 source files to /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/ComponentProcessingLib
[javac] warning: [options] bootstrap class path not set in conjunction with -source 1.5
[javac] warning: [options] source value 1.5 is obsolete and will be removed in a future release
[javac] warning: [options] target value 1.5 is obsolete and will be removed in a future release
[javac] warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
[javac] 4 warnings
[javac] Creating empty /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/ComponentProcessingLib/com/google/appinventor/components/annotations/package-info.class
[jar] Building jar: /Users/kirikiri3/Documents/mai/appinventor/components/build/ComponentProcessingLib.jar

HtmlEntities:

common_CommonUtils:

init:

CommonUtils:

AnnotationProcessors:
[mkdir] Created dir: /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/AnnotationProcessors
[javac] Compiling 7 source files to /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/AnnotationProcessors
[javac] warning: [options] bootstrap class path not set in conjunction with -source 1.5
[javac] warning: [options] source value 1.5 is obsolete and will be removed in a future release
[javac] warning: [options] target value 1.5 is obsolete and will be removed in a future release
[javac] warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
[javac] 4 warnings
[javac] Creating empty /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/AnnotationProcessors/com/google/appinventor/components/scripts/package-info.class
[copy] Copying 22 files to /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/AnnotationProcessors
[jar] Building jar: /Users/kirikiri3/Documents/mai/appinventor/components/build/AnnotationProcessors.jar

common_CommonVersion:

init:

CommonVersion:
[exec] Result: 1
[exec] Result: 1

AndroidRuntime:

Barcode:

ComponentList:
[mkdir] Created dir: /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/ComponentList
[javac] Compiling 196 source files to /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/ComponentList
[javac] warning: No SupportedSourceVersion annotation found on com.google.appinventor.components.scripts.ComponentListGenerator, returning RELEASE_6.
[javac] warning: Supported source version 'RELEASE_6' from annotation processor 'com.google.appinventor.components.scripts.ComponentListGenerator' less than -source '1.8'
[javac] warning: In component NearField, event TagWritten is missing a description.
[javac] warning: In component Pedometer, event StartedMoving is missing a description.
[javac] warning: In component Pedometer, event StoppedMoving is missing a description.
[javac] warning: In component Pedometer, event CalibrationFailed is missing a description.
[javac] warning: In component Pedometer, event GPSAvailable is missing a description.
[javac] warning: In component Pedometer, event GPSLost is missing a description.
[javac] Note: Wrote file file:/Users/kirikiri3/Documents/mai/appinventor/components/build/classes/ComponentList/simple_components.txt
[javac] Note: Wrote file file:/Users/kirikiri3/Documents/mai/appinventor/components/build/classes/ComponentList/simple_components_build_info.json
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] Note: Some input files use unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] 8 warnings
[javac] Creating empty /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/ComponentList/com/google/appinventor/components/runtime/util/package-info.class
[javac] Creating empty /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/ComponentList/com/google/appinventor/components/runtime/collect/package-info.class
[javac] Creating empty /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/ComponentList/com/google/appinventor/components/runtime/package-info.class
[javac] Creating empty /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/ComponentList/com/google/appinventor/components/runtime/errors/package-info.class
[copy] Copying 1 file to /Users/kirikiri3/Documents/mai/appinventor/build/components
[copy] Copying 1 file to /Users/kirikiri3/Documents/mai/appinventor/build/components

BuildServer:
[copy] Copying 4 files to /Users/kirikiri3/Documents/mai/appinventor/buildserver/build/classes/BuildServer/files
[jar] Building jar: /Users/kirikiri3/Documents/mai/appinventor/buildserver/build/run/lib/BuildServer.jar

init:

CommonConstants:

HtmlEntities:

common_CommonVersion:

init:

CommonVersion:
[exec] Result: 1
[exec] Result: 1

AndroidRuntime:

ComponentProcessingLib:

common_CommonUtils:

init:

CommonUtils:

AnnotationProcessors:

JsonComponentDescription:
[mkdir] Created dir: /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/JsonComponentDescription
[javac] Compiling 196 source files to /Users/kirikiri3/Documents/mai/appinventor/components/build/classes/JsonComponentDescription
[javac] warning: No SupportedSourceVersion annotation found on com.google.appinventor.components.scripts.ComponentDescriptorGenerator, returning RELEASE_6.
[javac] warning: Supported source version 'RELEASE_6' from annotation processor 'com.google.appinventor.components.scripts.ComponentDescriptorGenerator' less than -source '1.8'
[javac] warning: In component NearField, event TagWritten is missing a description.
[javac] warning: In component Pedometer, event StartedMoving is missing a description.
[javac] warning: In component Pedometer, event StoppedMoving is missing a description.
[javac] warning: In component Pedometer, event CalibrationFailed is missing a description.
[javac] warning: In component Pedometer, event GPSAvailable is missing a description.
[javac] warning: In component Pedometer, event GPSLost is missing a description.
[javac]
[javac]
[javac] An annotation processor threw an uncaught exception.
[javac] Consult the following stack trace for details.
[javac] java.lang.RuntimeException: Cannot convert Java type 'java.net.Socket' to Yail type
[javac] at com.google.appinventor.components.scripts.ComponentProcessor.javaTypeToYailType(ComponentProcessor.java:1184)
[javac] at com.google.appinventor.components.scripts.ComponentDescriptorGenerator.outputBlockMethod(ComponentDescriptorGenerator.java:190)
[javac] at com.google.appinventor.components.scripts.ComponentDescriptorGenerator.outputComponent(ComponentDescriptorGenerator.java:125)
[javac] at com.google.appinventor.components.scripts.ComponentDescriptorGenerator.outputResults(ComponentDescriptorGenerator.java:226)
[javac] at com.google.appinventor.components.scripts.ComponentProcessor.process(ComponentProcessor.java:731)
[javac] at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
[javac] at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)
[javac] at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
[javac] at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
[javac] at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
[javac] at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
[javac] at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
[javac] at com.sun.tools.javac.main.Main.compile(Main.java:523)
[javac] at com.sun.tools.javac.main.Main.compile(Main.java:381)
[javac] at com.sun.tools.javac.main.Main.compile(Main.java:370)
[javac] at com.sun.tools.javac.main.Main.compile(Main.java:361)
[javac] at com.sun.tools.javac.Main.compile(Main.java:56)
[javac] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[javac] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[javac] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[javac] at java.lang.reflect.Method.invoke(Method.java:498)
[javac] at org.apache.tools.ant.taskdefs.compilers.Javac13.execute(Javac13.java:57)
[javac] at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:1344)
[javac] at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:1070)
[javac] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
[javac] at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
[javac] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[javac] at java.lang.reflect.Method.invoke(Method.java:498)
[javac] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[javac] at org.apache.tools.ant.Task.perform(Task.java:348)
[javac] at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
[javac] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
[javac] at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
[javac] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[javac] at java.lang.reflect.Method.invoke(Method.java:498)
[javac] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[javac] at org.apache.tools.ant.Task.perform(Task.java:348)
[javac] at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:396)
[javac] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
[javac] at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
[javac] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[javac] at java.lang.reflect.Method.invoke(Method.java:498)
[javac] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[javac] at org.apache.tools.ant.Task.perform(Task.java:348)
[javac] at org.apache.tools.ant.Target.execute(Target.java:435)
[javac] at org.apache.tools.ant.Target.performTasks(Target.java:456)
[javac] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405)
[javac] at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
[javac] at org.apache.tools.ant.Project.executeTargets(Project.java:1260)
[javac] at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:441)
[javac] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
[javac] at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
[javac] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[javac] at java.lang.reflect.Method.invoke(Method.java:498)
[javac] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[javac] at org.apache.tools.ant.Task.perform(Task.java:348)
[javac] at org.apache.tools.ant.Target.execute(Target.java:435)
[javac] at org.apache.tools.ant.Target.performTasks(Target.java:456)
[javac] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405)
[javac] at org.apache.tools.ant.Project.executeTarget(Project.java:1376)
[javac] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[javac] at org.apache.tools.ant.Project.executeTargets(Project.java:1260)
[javac] at org.apache.tools.ant.Main.runBuild(Main.java:854)
[javac] at org.apache.tools.ant.Main.startAnt(Main.java:236)
[javac] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:285)
[javac] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:112)

BUILD FAILED
/Users/kirikiri3/Documents/mai/appinventor/build.xml:36: The following error occurred while executing this line:
/Users/kirikiri3/Documents/mai/appinventor/components/build.xml:343: The following error occurred while executing this line:
/Users/kirikiri3/Documents/mai/appinventor/components/build.xml:230: Compile failed; see the compiler error output for details.

Total time: 21 seconds
kirikiri3s-macbook-pro:appinventor kirikiri3$

  • Forum-Beiträge: 2.214

08.10.2016 15:56:05 via Website

Hallo Arne,

abgesehen davon , dass du mit der allgemeinen Technik von Java haderst, machst du es hier falsch.

Natürlich kannst du den Socket ausserhalb von try/ catch deklarieren, ABER nicht initialisieren.
Das sind zwei paar Schuhe.

Aus der Hüfte - nicht getestet......

Socket foo = null;
.
public Socket fooInit (String ip,int port)
{
try
{
return new Socket (ip,port);
}
catch

Aufruf

foo = new fooInit("129.....",2000);

Desweiteren kannst du initalisieren , wie auch das read/write unter Android nicht in eine "funktion" unterbringen , sondern du musst sie in einem thread unterbringen ....

Grundlagen wären hier hilfreich...

P.S Mit Appinventor kann dir hier kaum jemand behilflich sein .
Ich würde dir empfehlen erst mal das ganze Gerüst in native auf die Beine zu stellen und dann dem AppInventor anzupassen ( wenn es vorher läuft)

lg
Stefan

— geändert am 08.10.2016 16:15:15

Liebe Grüße - Stefan
[ App - Entwicklung ]

  • Forum-Beiträge: 41

08.10.2016 16:38:48 via Website

Danke Stefan. Ich weiß jetzt inzwischen, dass der Compiler gemeckert hat, weil das bei AppInventor genenrell nicht zulässig ist, dass eine Methode einen Socket zurück gibt.

Das mit dem Deklarieren und Initialiseren war mir bewusst, aber ich wusste nicht, wie ich das konkret gestalte ohne dass ich wegen den exceptions oder return angemeckert werde. Am Ende hatte ich das hier:

public Socket GiveSocket(String ip, int port){
Socket socket2 = new Socket();
try {socket2.connect(new InetSocketAddress(ip, port));
        } catch (IOException e) {
            e.printStackTrace();}

return socket2;

}

Und das schien soweit zu laufen, bis auf das, dass mein Vorhaben mit dem Socket generell bei AI nicht geht. Sollte Java-mäßig sonst aber grundsätzlich kein Problem sein.

  • Forum-Beiträge: 2.214

08.10.2016 16:54:08 via Website

Sieht ganz gut aus - ausser den von mir mehrmals schon erwähnten Thread :-)

An der Stelle kommt jetzt AI ins Spiel und ich klinke mich mal aus :-)

Viel Erfolg :-)

lg
Stefan

Liebe Grüße - Stefan
[ App - Entwicklung ]