sterepando commited on
Commit
e3865db
·
verified ·
1 Parent(s): dab38a6

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +10 -11
Dockerfile CHANGED
@@ -13,7 +13,7 @@ RUN apt-get update && \
13
  RUN pip install --no-cache-dir gradio
14
 
15
  # -----------------------------------------------------------------------------
16
- # Android SDK (Build Tools 30.0.3)
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
@@ -26,8 +26,9 @@ RUN mkdir -p ${ANDROID_SDK_ROOT}/cmdline-tools && \
26
 
27
  ENV PATH=${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${PATH}
28
 
 
29
  RUN yes | sdkmanager --licenses >/dev/null && \
30
- sdkmanager "build-tools;30.0.3" "platforms;android-30"
31
 
32
  # -----------------------------------------------------------------------------
33
  # Сборка
@@ -46,7 +47,6 @@ RUN rm -rf jpms-example example android src/test \
46
  && find . -name "module-info.java" -delete
47
 
48
  # 3. FIX: Заглушка GlobalLibraryLoader
49
- # ВАЖНО: Она должна быть такой, чтобы Lua54Natives не ругался
50
  RUN mkdir -p luajava/src/main/java/party/iroiro/luajava/util && \
51
  echo 'package party.iroiro.luajava.util;' > luajava/src/main/java/party/iroiro/luajava/util/GlobalLibraryLoader.java && \
52
  echo 'public class GlobalLibraryLoader {' >> luajava/src/main/java/party/iroiro/luajava/util/GlobalLibraryLoader.java && \
@@ -54,7 +54,7 @@ RUN mkdir -p luajava/src/main/java/party/iroiro/luajava/util && \
54
  echo ' public static void register(Class<?> c, boolean b) {}' >> luajava/src/main/java/party/iroiro/luajava/util/GlobalLibraryLoader.java && \
55
  echo '}' >> luajava/src/main/java/party/iroiro/luajava/util/GlobalLibraryLoader.java
56
 
57
- # 4. FIX: Рефакторинг LuaException/LuaError
58
  RUN rm luajava/src/main/java/party/iroiro/luajava/LuaException.java
59
  RUN echo 'package party.iroiro.luajava;' > luajava/src/main/java/party/iroiro/luajava/LuaError.java && \
60
  echo 'public enum LuaError { OK, YIELD, RUNTIME, SYNTAX, MEMORY, GC, ERR, FILE, HANDLER, JAVA; ' >> luajava/src/main/java/party/iroiro/luajava/LuaError.java && \
@@ -80,12 +80,11 @@ RUN find . -name "*.java" -exec sed -i 's/@NotNull//g' {} + && \
80
  RUN mkdir classes
81
  RUN javac -source 1.8 -target 1.8 -d classes $(find . -name "*.java")
82
 
83
- # 7. Сборка DEX через D8 (с отключенным desugaring для стабильности)
84
- RUN ${ANDROID_SDK_ROOT}/build-tools/30.0.3/d8 \
85
- --lib ${ANDROID_SDK_ROOT}/platforms/android-30/android.jar \
86
- --min-api 21 \
87
- --output . \
88
- $(find classes -name "*.class") && \
89
  mv classes.dex /app/luajava_wrapper.dex
90
 
91
  WORKDIR /app
@@ -100,7 +99,7 @@ RUN echo 'import gradio as gr' > app.py && \
100
  echo '' >> app.py && \
101
  echo 'with gr.Blocks() as demo:' >> app.py && \
102
  echo ' gr.Markdown("# Download LuaJava DEX")' >> app.py && \
103
- echo ' gr.Markdown("Final Clean Build (No GDX, No d8 bugs)")' >> app.py && \
104
  echo ' gr.File(value=file_path, label="luajava_wrapper.dex", interactive=False)' >> app.py && \
105
  echo '' >> app.py && \
106
  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 (Build Tools 28.0.3 - Эпоха DX)
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
 
26
 
27
  ENV PATH=${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${PATH}
28
 
29
+ # Ставим 28.0.3, чтобы получить настоящий DX
30
  RUN yes | sdkmanager --licenses >/dev/null && \
31
+ sdkmanager "build-tools;28.0.3" "platforms;android-28"
32
 
33
  # -----------------------------------------------------------------------------
34
  # Сборка
 
47
  && find . -name "module-info.java" -delete
48
 
49
  # 3. FIX: Заглушка GlobalLibraryLoader
 
50
  RUN mkdir -p luajava/src/main/java/party/iroiro/luajava/util && \
51
  echo 'package party.iroiro.luajava.util;' > luajava/src/main/java/party/iroiro/luajava/util/GlobalLibraryLoader.java && \
52
  echo 'public class GlobalLibraryLoader {' >> luajava/src/main/java/party/iroiro/luajava/util/GlobalLibraryLoader.java && \
 
54
  echo ' public static void register(Class<?> c, boolean b) {}' >> luajava/src/main/java/party/iroiro/luajava/util/GlobalLibraryLoader.java && \
55
  echo '}' >> luajava/src/main/java/party/iroiro/luajava/util/GlobalLibraryLoader.java
56
 
57
+ # 4. FIX: Рефакторинг LuaException/LuaError (оставляем, это хороший тон)
58
  RUN rm luajava/src/main/java/party/iroiro/luajava/LuaException.java
59
  RUN echo 'package party.iroiro.luajava;' > luajava/src/main/java/party/iroiro/luajava/LuaError.java && \
60
  echo 'public enum LuaError { OK, YIELD, RUNTIME, SYNTAX, MEMORY, GC, ERR, FILE, HANDLER, JAVA; ' >> luajava/src/main/java/party/iroiro/luajava/LuaError.java && \
 
80
  RUN mkdir classes
81
  RUN javac -source 1.8 -target 1.8 -d classes $(find . -name "*.java")
82
 
83
+ # 7. Сборка DEX через DX (Legacy)
84
+ # dx гораздо надежнее для таких задач
85
+ RUN ${ANDROID_SDK_ROOT}/build-tools/28.0.3/dx \
86
+ --dex --output=classes.dex \
87
+ classes && \
 
88
  mv classes.dex /app/luajava_wrapper.dex
89
 
90
  WORKDIR /app
 
99
  echo '' >> app.py && \
100
  echo 'with gr.Blocks() as demo:' >> app.py && \
101
  echo ' gr.Markdown("# Download LuaJava DEX")' >> app.py && \
102
+ echo ' gr.Markdown("Compilation SUCCESS! (Built with Legacy DX)")' >> app.py && \
103
  echo ' gr.File(value=file_path, label="luajava_wrapper.dex", interactive=False)' >> app.py && \
104
  echo '' >> app.py && \
105
  echo 'demo.launch(server_name="0.0.0.0", server_port=7860)' >> app.py