sterepando commited on
Commit
304d900
·
verified ·
1 Parent(s): 6839f38

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +20 -14
Dockerfile CHANGED
@@ -13,7 +13,7 @@ RUN apt-get update && \
13
  RUN pip install --no-cache-dir gradio
14
 
15
  # -----------------------------------------------------------------------------
16
- # Android SDK (Используем 34.0.0 для лучшей поддержки desugaring)
17
  # -----------------------------------------------------------------------------
18
  ENV ANDROID_SDK_ROOT=/opt/android-sdk
19
  ENV CMDLINE_TOOLS_URL=https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip
@@ -34,18 +34,18 @@ RUN yes | sdkmanager --licenses >/dev/null && \
34
  # -----------------------------------------------------------------------------
35
  WORKDIR /app
36
 
37
- # 1. Исходники
38
  RUN git clone https://github.com/gudzpoz/luajava.git
39
 
40
  WORKDIR /app/luajava
41
 
42
- # 2. Чистка (удаляем лишнее)
43
  RUN rm -rf jpms-example example android src/test \
44
  lua51 lua52 lua53 luajit luaj jsr223 \
45
  luajava/src/main/java/party/iroiro/luajava/util/GlobalLibraryLoader.java \
46
  && find . -name "module-info.java" -delete
47
 
48
- # 3. Заглушка GlobalLibraryLoader
49
  RUN mkdir -p luajava/src/main/java/party/iroiro/luajava/util && \
50
  echo 'package party.iroiro.luajava.util;' > luajava/src/main/java/party/iroiro/luajava/util/GlobalLibraryLoader.java && \
51
  echo 'public class GlobalLibraryLoader {' >> luajava/src/main/java/party/iroiro/luajava/util/GlobalLibraryLoader.java && \
@@ -53,20 +53,26 @@ RUN mkdir -p luajava/src/main/java/party/iroiro/luajava/util && \
53
  echo ' public static void register(Class<?> c, boolean b) {}' >> luajava/src/main/java/party/iroiro/luajava/util/GlobalLibraryLoader.java && \
54
  echo '}' >> luajava/src/main/java/party/iroiro/luajava/util/GlobalLibraryLoader.java
55
 
56
- # 4. Аннотации
 
 
 
 
 
 
 
 
 
 
 
 
57
  RUN find . -name "*.java" -exec sed -i 's/@NotNull//g' {} + && \
58
  find . -name "*.java" -exec sed -i 's/@Nullable//g' {} + && \
59
  find . -name "*.java" -exec sed -i '/import org.jetbrains.annotations/d' {} +
60
 
61
- # 5. Компиляция с флагами -parameters и -g
62
- # Это должно починить NPE в d8
63
  RUN mkdir classes
64
- RUN javac -parameters -g -source 8 -target 8 -d classes $(find . -name "*.java")
65
-
66
- # 6. ХАК: Удаляем класс, на котором падает d8 (LuaError)
67
- # Если javac flags не помогут, это удаление спасет ситуацию.
68
- # d8 просто не будет обрабатывать этот файл.
69
- RUN find classes -name "*LuaError.class" -delete
70
 
71
  # 7. Сборка DEX
72
  RUN ${ANDROID_SDK_ROOT}/build-tools/34.0.0/d8 \
@@ -88,7 +94,7 @@ RUN echo 'import gradio as gr' > app.py && \
88
  echo '' >> app.py && \
89
  echo 'with gr.Blocks() as demo:' >> app.py && \
90
  echo ' gr.Markdown("# Download LuaJava DEX")' >> app.py && \
91
- echo ' gr.Markdown("Compilation SUCCESS! (With LuaError workaround)")' >> app.py && \
92
  echo ' gr.File(value=file_path, label="luajava_wrapper.dex", interactive=False)' >> app.py && \
93
  echo '' >> app.py && \
94
  echo 'demo.launch(server_name="0.0.0.0", server_port=7860)' >> app.py
 
13
  RUN pip install --no-cache-dir gradio
14
 
15
  # -----------------------------------------------------------------------------
16
+ # Android SDK
17
  # -----------------------------------------------------------------------------
18
  ENV ANDROID_SDK_ROOT=/opt/android-sdk
19
  ENV CMDLINE_TOOLS_URL=https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip
 
34
  # -----------------------------------------------------------------------------
35
  WORKDIR /app
36
 
37
+ # 1. Клонируем
38
  RUN git clone https://github.com/gudzpoz/luajava.git
39
 
40
  WORKDIR /app/luajava
41
 
42
+ # 2. ЧИСТКА ОТ ЛИШНЕГО
43
  RUN rm -rf jpms-example example android src/test \
44
  lua51 lua52 lua53 luajit luaj jsr223 \
45
  luajava/src/main/java/party/iroiro/luajava/util/GlobalLibraryLoader.java \
46
  && find . -name "module-info.java" -delete
47
 
48
+ # 3. FIX ЗАВИСИМОСТЕЙ (Убираем GDX)
49
  RUN mkdir -p luajava/src/main/java/party/iroiro/luajava/util && \
50
  echo 'package party.iroiro.luajava.util;' > luajava/src/main/java/party/iroiro/luajava/util/GlobalLibraryLoader.java && \
51
  echo 'public class GlobalLibraryLoader {' >> luajava/src/main/java/party/iroiro/luajava/util/GlobalLibraryLoader.java && \
 
53
  echo ' public static void register(Class<?> c, boolean b) {}' >> luajava/src/main/java/party/iroiro/luajava/util/GlobalLibraryLoader.java && \
54
  echo '}' >> luajava/src/main/java/party/iroiro/luajava/util/GlobalLibraryLoader.java
55
 
56
+ # 4. FIX БАГА D8 (Переписываем LuaException на чистый Java)
57
+ # Это уберет сложный байт-код, на котором падал d8
58
+ RUN echo 'package party.iroiro.luajava;' > luajava/src/main/java/party/iroiro/luajava/LuaException.java && \
59
+ echo 'public class LuaException extends Exception {' >> luajava/src/main/java/party/iroiro/luajava/LuaException.java && \
60
+ echo ' public LuaException(String msg) { super(msg); }' >> luajava/src/main/java/party/iroiro/luajava/LuaException.java && \
61
+ echo ' public LuaException(Throwable cause) { super(cause); }' >> luajava/src/main/java/party/iroiro/luajava/LuaException.java && \
62
+ echo ' public static class LuaError extends RuntimeException {' >> luajava/src/main/java/party/iroiro/luajava/LuaException.java && \
63
+ echo ' public LuaError(String msg) { super(msg); }' >> luajava/src/main/java/party/iroiro/luajava/LuaException.java && \
64
+ echo ' public LuaError(Throwable cause) { super(cause); }' >> luajava/src/main/java/party/iroiro/luajava/LuaException.java && \
65
+ echo ' }' >> luajava/src/main/java/party/iroiro/luajava/LuaException.java && \
66
+ echo '}' >> luajava/src/main/java/party/iroiro/luajava/LuaException.java
67
+
68
+ # 5. Удаляем аннотации
69
  RUN find . -name "*.java" -exec sed -i 's/@NotNull//g' {} + && \
70
  find . -name "*.java" -exec sed -i 's/@Nullable//g' {} + && \
71
  find . -name "*.java" -exec sed -i '/import org.jetbrains.annotations/d' {} +
72
 
73
+ # 6. Компиляция
 
74
  RUN mkdir classes
75
+ RUN javac -source 8 -target 8 -d classes $(find . -name "*.java")
 
 
 
 
 
76
 
77
  # 7. Сборка DEX
78
  RUN ${ANDROID_SDK_ROOT}/build-tools/34.0.0/d8 \
 
94
  echo '' >> app.py && \
95
  echo 'with gr.Blocks() as demo:' >> app.py && \
96
  echo ' gr.Markdown("# Download LuaJava DEX")' >> app.py && \
97
+ echo ' gr.Markdown("Final Fix Build: No GDX deps, No d8 crashes.")' >> app.py && \
98
  echo ' gr.File(value=file_path, label="luajava_wrapper.dex", interactive=False)' >> app.py && \
99
  echo '' >> app.py && \
100
  echo 'demo.launch(server_name="0.0.0.0", server_port=7860)' >> app.py