«Ошибка mmap для CEN и END части zip-файла» && «Ошибка: не удалось найти или загрузить основной класс org.gradle.wrapper.GradleWrapperMain» - PullRequest
0 голосов
/ 21 октября 2018

Я пытаюсь собрать apk Android-приложения Dual Boot Patcher из Debian 8 Jessie host & Docker с гостевой средой Fedora, но я получаю сообщение об ошибке, когда я делаю "make apk":

mmap failed for CEN and END part of zip file
Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain
make[3]: *** [Android_GUI/CMakeFiles/apk.dir/build.make:57: Android_GUI/CMakeFiles/apk] Error 1
make[2]: *** [CMakeFiles/Makefile2:710: Android_GUI/CMakeFiles/apk.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:717: Android_GUI/CMakeFiles/apk.dir/rule] Error 2
make: *** [Makefile:301: apk] Error 2

Сборказдесь приведены следующие инструкции: https://github.com/chenxiaolong/DualBootPatcher/tree/master/docs/build https://github.com/chenxiaolong/DualBootPatcher/blob/master/docs/build/Git-Clone.md https://github.com/chenxiaolong/DualBootPatcher/blob/master/docs/build/Docker.md https://github.com/chenxiaolong/DualBootPatcher/blob/master/docs/build/App-Android.md

Я выполнил следующие команды на сервере Debian:

# *** Build DualBootPatcher from beginning under Debian Linux within Docker environment ***


mkdir ~/git
cd ~/git


git clone --recursive https://github.com/chenxiaolong/DualBootPatcher.git


git submodule update --init --recursive


./docker/generate.sh


./docker/build.sh


docker run --rm -it \
    -e USER_ID=$(id -u) \
    -e GROUP_ID=$(id -g) \
    -v "$(pwd):/builder/DualBootPatcher:rw,z" \
    -v "${HOME}/.android:/builder/.android:rw,z" \
    -v "${HOME}/.ccache:/builder/.ccache:rw,z" \
    -v "${HOME}/.gradle:/builder/.gradle:rw,z" \
    chenxiaolong/dualbootpatcher:9.3.0-6-android \
    bash


keytool -genkey -v \
                -keystore /root/.android/debug.keystore \
                -alias androiddebugkey \
                -storepass android \
                -keypass android \
                -keyalg RSA \
                -validity 10950 \
                -dname "CN=Android Debug,O=Android,C=US"


keytool -importkeystore -srckeystore /root/.android/debug.keystore -destkeystore /root/.android/debug.keystore -deststoretype pkcs12


mkdir /builder/DualBootPatcher/build || cd /builder/DualBootPatcher/build && cmake .. -DMBP_BUILD_TARGET=android 



# Build the system components. This includes things like mbtool, odinupdater, and various native libraries used by the app. The build can be sped up by running things in parallel. Just pass -j<number of cores> (eg. -j4) to make.
make -j10


# Package the system components into a tarball.
rm -rf assets && cpack


# Build the APK. The resulting APK file will be in the Android_GUI/build/outputs/apk directory.
make apk



# *** Build DualBootPatcher from beginning under Linux within Docker environment ***

mkdir ~/git


cd ~/git


git clone --recursive https://github.com/chenxiaolong/DualBootPatcher.git


git submodule update --init --recursive


./docker/generate.sh


./docker/build.sh


docker run --rm -it \
    -e USER_ID=$(id -u) \
    -e GROUP_ID=$(id -g) \
    -v "$(pwd):/builder/DualBootPatcher:rw,z" \
    -v "${HOME}/.android:/builder/.android:rw,z" \
    -v "${HOME}/.ccache:/builder/.ccache:rw,z" \
    -v "${HOME}/.gradle:/builder/.gradle:rw,z" \
    chenxiaolong/dualbootpatcher:9.3.0-6-android \
    bash


keytool -genkey -v \
                -keystore /root/.android/debug.keystore \
                -alias androiddebugkey \
                -storepass android \
                -keypass android \
                -keyalg RSA \
                -validity 10950 \
                -dname "CN=Android Debug,O=Android,C=US"


keytool -importkeystore -srckeystore /root/.android/debug.keystore -destkeystore /root/.android/debug.keystore -deststoretype pkcs12


mkdir /builder/DualBootPatcher/build || cd /builder/DualBootPatcher/build && cmake .. -DMBP_BUILD_TARGET=android 


# Build the system components. This includes things like mbtool, odinupdater, and various native libraries used by the app. The build can be sped up by running things in parallel. Just pass -j<number of cores> (eg. -j4) to make.
make -j10


# Package the system components into a tarball.
rm -rf assets && cpack


# Build the APK. The resulting APK file will be in the Android_GUI/build/outputs/apk directory.
make apk


[root@465d02ff230d build]# make apk
mmap failed for CEN and END part of zip file
Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain
make[3]: *** [Android_GUI/CMakeFiles/apk.dir/build.make:57: Android_GUI/CMakeFiles/apk] Error 1
make[2]: *** [CMakeFiles/Makefile2:710: Android_GUI/CMakeFiles/apk.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:717: Android_GUI/CMakeFiles/apk.dir/rule] Error 2
make: *** [Makefile:301: apk] Error 2

Как я могу это исправить?

...