Как добавить dalvik VM в проект AndroidJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как добавить dalvik VM в проект Android

Сообщение Anonymous »

Я пытаюсь создать ядро ​​игры, и все готово, кроме компилятора. Мне это понравилось:

Код: Выделить всё

package com.ccs.gencorelite.compiler;

import java.io.IOException;

public class ProjectCompiler {

public static void compileProject(String projectPath, String outputPath) {
try {
ProcessBuilder builder = new ProcessBuilder(
"aapt", "package", "-f",
"-M", projectPath + "/AndroidManifest.xml",
AndroidManifest.xml
"-S", projectPath + "/res",
"-I", "file:///resources/android.jar",                    "-F", outputPath + "/app.apk"
);

builder.redirectErrorStream(true);

Process process = builder.start();

// Очікування завершення процесу
int exitCode = process.waitFor();

// Перевірка статусу завершення
if (exitCode == 0) {
System.out.println("Проєкт успішно скомпільовано.");
} else {
System.out.println("Помилка під час компіляції проєкту.");
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}

После некоторых ошибок, на компиляцию которых у меня нет прав.
Я переписал этот класс, добавив несколько папок в папку ресурсов:
build-tools34,
платформы ,
platform-tools,
sdk34
и этот класс имеет такой вид:

Код: Выделить всё

package com.ccs.gencorelite.compiler;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class ProjectCompiler {

public static void compileJavaFiles(String projectPath) {

String javaCompilerPath = "file:///android_asset/compiler/bt34/javac";
String[] javacCmd = { javaCompilerPath, "-d", projectPath + "/bin", projectPath + "/src/**/*.java" };
executeCommand(javacCmd);
}

public static void compileResources(String projectPath) {
String aaptPath = "file:///android_asset/compiler/bt34/aapt";
String[] aaptCmd = { aaptPath, "package", "-f", "-m", "-J", projectPath + "/gen", "-S", projectPath + "/res", "-I", "file:///android_resources/android.jar" };
executeCommand(aaptCmd);
}

public static void convertToDalvikBytecode(String projectPath) {
String dxPath = "file:///android_asset/compiler/bt34/dx";
String[] dxCmd = { dxPath, "--dex", "--output=" + projectPath + "/bin/classes.dex", projectPath + "/bin" };
executeCommand(dxCmd);
}

public static void executeCommand(String[] command) {
try {
Process process = new ProcessBuilder(command).start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
process.waitFor();
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
И у меня есть ошибки по этому классу:
`
java.io.IOException: невозможно запустить программу "file:///android_assets/compiler/bt34/javac" ": error=2, такого файла или каталога нет
2024-05-09 22:14:26.305 28386-28386 System.err com.ccs.gencorelite W java.io.IOException: Невозможно запустить программу «file:///android_assets/compiler/bt34/aapt»: ошибка = 2, такого файла или каталога нет
2024-05-09 22:14:26.312 28386- 28386 System.err com.ccs.gencorelite W java.io.IOException: невозможно запустить программу «file:///android_assets/compiler/bt34/dx»: ошибка = 2, такого файла или каталога нет
`

Подробнее здесь: https://stackoverflow.com/questions/784 ... id-project
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»