You can build an Android project and get a .apk
file on a Debian 11 command line without using Android Studio. The process involves using the Android SDK command-line tools (sdkmanager
, adb
, and gradle
).
Here's a step-by-step guide to building the ??? Android project (or any other Android project) on Debian 11:
1. Install Java Development Kit (JDK)
??? Android requires JDK 8 or newer. You can install the JDK using the following command:
bash
sudo apt update
sudo apt install openjdk-11-jdk
2. Install Android SDK Command-Line Tools
Download the Android SDK command-line tools. You can do this by visiting the Android SDK download page or by running:
bash
wget https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip
bash
ed2k://|file|android-sdk-commandlinetools-linux-9477386_latest.zip|133507477|9B0150B86C257EB841527537951CFDF2|/
Extract the SDK tools and move them to your desired location:
bash
unzip commandlinetools-linux-9477386_latest.zip
sudo mkdir -p /opt/android-sdk/cmdline-tools
sudo mv cmdline-tools /opt/android-sdk/cmdline-tools/latest
Add the Android SDK to your PATH
by editing the .bashrc
file:
bash
echo "export ANDROID_SDK_ROOT=/opt/android-sdk" >> ~/.bashrc
echo "export PATH=\$PATH:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/platform-tools" >> ~/.bashrc
source ~/.bashrc
3. Install Required SDKs and Build Tools
Now, use the SDK manager to install necessary packages like platform-tools
, build-tools
, and SDK platforms:
bash
sdkmanager --install "platform-tools" "platforms;android-30" "build-tools;30.0.3"
Adjust the SDK and build tools versions according to the project's requirements (you can check build.gradle
for details).
4. Clone the Project
Clone the ??? Android repository:
bash
git clone https://github.com/????????????/????????????-android.git
cd ????????????-android
5. Install Gradle
Debian repositories might not have the latest Gradle version. Install the required version specified in the gradle/wrapper/gradle-wrapper.properties
file by running:
bash
sudo apt install gradle
Alternatively, you can use the Gradle wrapper bundled with the project:
bash
./gradlew
6. Build the Project
Run the following Gradle command to build the APK:
bash
./gradlew assembleRelease
This command will generate the APK file in the app/build/outputs/apk/release/
directory.
7. Sign the APK (Optional)
If you want to sign the APK for release, you will need a keystore. You can create one with:
bash
keytool -genkey -v -keystore my-release-key.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-alias
Sign the APK using apksigner
:
bash
apksigner sign --ks my-release-key.keystore --out app-release-signed.apk app/build/outputs/apk/release/app-release-unsigned.apk
8. Run or Install the APK
Once the APK is built, you can install it on your Android device using ADB:
bash
adb install app-release-signed.apk
That's it! You should now have a .apk
file generated without needing Android Studio.
To upgrade from JDK 11 to JDK 17 on your Debian system, you can follow these simple steps to install JDK 17 and set it as the default. Here's how to do it efficiently:
Step-by-Step Process to Upgrade to JDK 17
1. Install JDK 17
Use the Debian package manager to install OpenJDK 17:
bash
sudo apt update
sudo apt install openjdk-17-jdk
This will install JDK 17 alongside your current JDK 11 version.
2. Check Installed Java Versions
After installation, you can check the installed Java versions by running:
bash
sudo update-alternatives --config java
This will display all installed Java versions.
3. Switch to JDK 17
You'll see a list of installed JDKs and a prompt to choose which one to use. Select the number corresponding to JDK 17 to set it as the default version.
For example, if the list looks like this:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
2 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1112 manual mode
Press <enter> to keep the current choice[*], or type selection number:
Enter the number corresponding to JDK 17 (in this case, 2
).
4. Verify the Java Version
To confirm that JDK 17 is now the active version, run:
bash
java -version
You should see something like:
openjdk version "17.x.x" OpenJDK Runtime Environment (build ...)
5. Update JAVA_HOME
Environment Variable (Optional)
If you rely on the JAVA_HOME
environment variable in your build, make sure it points to JDK 17. Add the following line to your ~/.bashrc
or ~/.profile
file:
bash
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
Then, reload the shell:
bash
source ~/.bashrc
6. Run the Build Again
Now that you're using JDK 17, you can re-run your Gradle build:
bash
./gradlew build
This should resolve the issue with the Firebase dependency that requires a Java 17 runtime.
Downgrading to Gradle 8.x is a simpler and effective approach, especially if you just want to avoid dealing with compatibility issues related to future versions like Gradle 9.0.
Here's how you can downgrade Gradle and switch to a specific version:
1. Install a Specific Version of Gradle (e.g., 8.x)
You can manually install a specific version of Gradle (like 8.x) by following these steps:
-
Download the Gradle 8.x distribution :
Go to the Gradle releases page and download the ZIP for the desired 8.x version. For example, download Gradle 8.10 if you want to use that.
bashwget https://services.gradle.org/distributions/gradle-8.10-bin.zip
-
Unzip the downloaded Gradle :
Unzip the downloaded file in a directory of your choice (for example,
/opt/gradle
).bashsudo mkdir /opt/gradle sudo unzip gradle-8.10-bin.zip -d /opt/gradle
-
Set up the environment variable :
Point your system to use this specific version of Gradle by updating your
PATH
environment variable.Add the following line to your
~/.bashrc
(or~/.profile
):bashexport PATH=/opt/gradle/gradle-8.10/bin:$PATH
Then reload your shell:
bashsource ~/.bashrc
2. Verify the Installed Gradle Version
To make sure the correct version of Gradle is now active, run:
bash
gradle -v
This should show you that Gradle 8.x is being used.
3. Switch Between Gradle Versions
If you later need to switch between Gradle 9.0 and 8.x, you can:
- Update the
PATH
environment variable to point to the version you need. - Use Gradle Wrapper (
gradlew
) to specify a particular version for your project.
For example, to use Gradle 8.x for your project via the Gradle Wrapper, you can update the wrapper configuration:
bash
./gradlew wrapper --gradle-version 8.x
This way, your project will always use Gradle 8.x regardless of the system-wide version installed.