Skip to content

Help #2

@moderGamer

Description

@moderGamer

hello bro me using in code

import android.app.ProgressDialog;
import android.content.pm.PackageManager;
import android.Manifest;
import android.os.Environment;
import android.os.Handler;
import android.widget.Button;
import android.widget.Toast;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import androidx.core.content.ContextCompat;
import androidx.core.app.ActivityCompat;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.xiaoyv.ccompile.compiler.listener.CompileCallback;
import com.xiaoyv.ccompile.compiler.listener.ExecuteListener;
import java.io.File;
import java.util.List;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
	private Button runGcc, runCode;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		runCode = findViewById(R.id.runCode);
		runGcc = findViewById(R.id.runGcc);

		setFiles();
		runCode.setOnClickListener(v -> {
			CompileCpp("/storage/emulated/0/apk/Main.cpp");
			Handler handler = new Handler();
			handler.postDelayed(() -> {
				RunCodes("/storage/emulated/0/apk/");
			}, 3000);

		});
		runGcc.setOnClickListener(c -> {
			installGcc();
		});
	}

	@Override
	public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
		super.onRequestPermissionsResult(requestCode, permissions, grantResults);
		if (requestCode == 1000) {
			setFiles();
		}
	}

	private void getFiles() {
		if (ContextCompat.checkSelfPermission(this,
				Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED
				|| ContextCompat.checkSelfPermission(this,
						Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) {
			ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.READ_EXTERNAL_STORAGE,
					Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1000);
		} else {
			setFiles();
		}
	}

	private void setFiles() {
		new MaterialAlertDialogBuilder(this).setTitle("مجوز فایب").setMessage("مجوز فایب رو بده جاکش")
				.setPositiveButton("ok", (ccc, dd) -> {
					getFiles();
				}).show();
	}

	private void installGcc() {
		ProgressDialog dialogs = new ProgressDialog(MainActivity.this, ProgressDialog.THEME_DEVICE_DEFAULT_DARK);
		dialogs.setTitle("Loading...");
		dialogs.show();
		File dir = new File(Environment.getExternalStorageDirectory() + "/c_compiler/gcc.zip");

		CCppEngine.installGcc(this, new File(Environment.getExternalStorageDirectory() + "/c_compiler/gcc.zip"),
				new CCppEngine.OnInstallListener() {
					@Override
					public void onSuccess() {
						Log.e("aaaa", "安装成功");
						Toast.makeText(MainActivity.this, "Done", Toast.LENGTH_SHORT).show();
						dialogs.dismiss();
					}

					@Override
					public void onError(String error) {
						Toast.makeText(MainActivity.this, error, Toast.LENGTH_SHORT).show();
						dialogs.dismiss();
					}
				});
	}

	private void CompileCpp(String dir) {
		File cFile = new File(dir);
		List<File> files = new ArrayList<>();
		files.add(cFile);

		Log.e("==========", "======================================================================");
		CCppEngine.getCppCompiler().compile(files, new CompileCallback() {
			@Override
			public void onSuccess(String outPath) {
				Log.e("==========", "编译完成:" + outPath);
				Toast.makeText(getApplicationContext(), outPath, 2).show();

			}

			@Override
			public void onError(String error) {
				Log.e("==========", "编译失败:" + error);
				Toast.makeText(getApplicationContext(), error, 2).show();

			}
		});
	}

	private void RunCodes(String dir) {
		File file = new File(dir);

		CCppEngine.getCExecutor().exec(file, new ExecuteListener() {
			@Override
			public void onExecuteStart(Process process) {
				Log.e("开始>>>>>>>", " process start");
			}

			@Override
			public void printStderr(Throwable error) {
				Log.e("错误>>>>>>>", error.toString());
				error.printStackTrace();
				Toast.makeText(getApplicationContext(),error.toString(),2).show();
			}

			@Override
			public void printStdout(CharSequence out) {
				Log.e("输出>>>>>>>", out.toString());
				runCode.setText(out);
			}

			@Override
			public void onExecuteFinish(int waitFor, int exitValue) {
				Log.e("完成>>>>>>>", "====================" + waitFor + "================" + exitValue);
			}
		});
	}

}

This code does not compile the code and does not display anything. Gcc is also installed

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions