Ich versuche, eine Java-Erweiterung für eine Game Maker Studio Android App zu machen.Bild Wählen Sie Für Android mit Java-Erweiterung in Game Maker Studio
Ich habe versucht, Code aus Online-Tutorials zu verwenden, aber GMS verwendet einen anderen Ansatz und ich kann es nicht zum Laufen bringen.
ich den Code unten bin mit:
package ${YYAndroidPackageName};
//Basic imports
import android.util.Log;
import java.lang.String;
import java.lang.String;
import android.app.Activity;
import android.content.Intent;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
//Import Game Maker classes
import ${YYAndroidPackageName}.R;
import com.yoyogames.runner.RunnerJNILib;
import ${YYAndroidPackageName}.RunnerActivity;
public class pickimage extends Activity {
public static final int PICK_IMAGE = 1;
private static final int EVENT_OTHER_SOCIAL = 70;
public void selectimage()
{
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE);
int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null, null);
RunnerJNILib.DsMapAddString(dsMapIndex, "type", "pickeropened");
RunnerJNILib.DsMapAddDouble(dsMapIndex, "argument0", 2);
RunnerJNILib.DsMapAddDouble(dsMapIndex, "argument0", 3);
RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL);
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
URI selectedImageUri = null;
if (resultCode == RESULT_OK) {
if (requestCode == SELECT_PICTURE) {
selectedImageUri = new URI(data.getData());
//String selectedImagePath = getPath(selectedImageUri);
//Log.i("yoyo", selectedImagePath);
//return selectedImagePath;
int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null,null);
RunnerJNILib.DsMapAddString(dsMapIndex, "type", "imagepath");
RunnerJNILib.DsMapAddString(dsMapIndex, "path", selectedImagePath);
RunnerJNILib.DsMapAddString(dsMapIndex, "path", "boo");
RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL);
}
}
}
/**
* helper to retrieve the path of an image URI
public String getPath(Uri uri) {
// just some safety built in
if(uri == null) {
// TODO perform some logging or show user feedback
return null;
}
// try to retrieve the image from the media store first
// this will only work for images selected from gallery
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
if(cursor != null){
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
// this is our fallback here
return uri.getPath();
}*/
}
ich die GMS Erweiterung Tutorial befolgt haben und es funktioniert nicht. Hier sind einige Fehlermeldungen von der Konsole:
:com.companyname.Test_Image_Chooser:compileReleaseJavaWithJavacF:\GM\Cache\Test_Image_Chooser\Android\Default\com.companyname.Test_Image_Chooser\src\main\java\com\companyname\Test_Image_Chooser\pickimage.java:41: error: cannot find symbol
if (requestCode == SELECT_PICTURE) {
^
symbol: variable SELECT_PICTURE
location: class pickimage
F:\GM\Cache\Test_Image_Chooser\Android\Default\com.companyname.Test_Image_Chooser\src\main\java\com\companyname\Test_Image_Chooser\pickimage.java:42: error: incompatible types: Uri cannot be converted to String
selectedImageUri = new URI(data.getData());
^
F:\GM\Cache\Test_Image_Chooser\Android\Default\com.companyname.Test_Image_Chooser\src\main\java\com\companyname\Test_Image_Chooser\pickimage.java:48: error: cannot find symbol
RunnerJNILib.DsMapAddString(dsMapIndex, "path", selectedImagePath);
^
symbol: variable selectedImagePath
location: class pickimage
Note: Some input files use or override a deprecated API.
* What went wrong:
Execution failed for task ':com.companyname.Test_Image_Chooser:compileReleaseJavaWithJavac'.
Was ich zu implementieren bin auf der Suche nach ist Benutzer auf eine Schaltfläche in App drückt, das Mutterbild Picker Dialog öffnet, Benutzer eine Datei auswählt. Dann drückt der Benutzer eine andere Taste und die App bekommt den vollständigen Pfad des ausgewählten Bildes und dann lade ich es auf meinen Server hoch.
Im neu zu Java :)
Kann jemand helfen?