如何在32位Linux上为Android开发

Dam*_*ere 3 linux android cordova android-studio android-gradle-plugin

这个问题的标题是我能提供的最好的,这正是我想要做的:在32位Linux(特别是32位Ubuntu,运行适度最新的内核4.4.0-66-generic)上开发Android应用; 3G RAM)。

到目前为止我学到/尝试过的东西:

  1. 自超过23以来,Android SDK停止在32位Linux操作系统上支持开发人员
  2. 对于Android Studio,我无法绕过appcompat,因此可以针对较低版本的android(例如19版)进行构建,因为面对没有option / instruction / clear指令的情况,我更改com.android.support:appcompat-v7:25为,com.android.support:appcompat-v7:19因此当我感到惊讶时得到的错误appcomat could not resolve com.android.support:appcompat-v7:19
  3. 在那个阶段,Android Studio中弹出了一条通知,通知我不需要适用于sdk版本> 19的appcompat和构建工具<21(或类似的东西),然后我将其删除,com.android.support:appcompat-v7:19然后出现下一个错误是failed to resolve com.android.support:design:19

  4. 我尝试使用Google搜索任何专门针对在32位Linux上开发Android应用程序的说明/过程指南,但没有找到!

  5. 我尝试了Cordova但卡在gradle构建中(也许仍然是因为上述相同的问题:android-sdk不支持32位Linux上的dev ),因为Cordova仍然依赖android-sdk

从我徘徊的Google迷途中,我偶然发现了Cordova,并且我喜欢它(也许是因为它基于CLI,并且我可以看到/控制所有内容,它甚至还具有--verbose选项,可以显示引擎盖下发生的所有事情),但是在阅读了我拼凑的其他文章以使其可以在32位Linux上进行构建之后,我仍然停留在构建阶段,因为当构建过程达到gradle阶段时,它顽固地坚持使用构建工具25.0.2,并且在我拼凑了有关如何设置构建工具版本的所有文章的过程中,我只是无法说服gradle使用已经完全安装(使用Android SDK Manager)的构建工具19。为了使gradle对我有用,我尝试<preference name="android-targetSdkVersion" value="19"/>在config.xml中进行设置,甚至cdvBuildToolsVersion=19~/project_folder/platforms/android/gradle.properties 然而,通过在科尔多瓦的所有这些努力,我得到了丰厚的回报:

任务':preBuild'的执行失败。找不到构建工具版本19.0.0

建立失败

我只想在32位Ubuntu操作系统上设置一个简单,运行良好的Android开发环境!

请提供方向/指南/提示/帮助!

顺便说一句,请不要建议改用64位Linux ...至少暂时不要

Gav*_*son 5

遵循这个出色的64位教程之后,我设法使其在旧的Celeron PC上运行的32位Ubuntu Linux上100%正常工作。我创建了hellow orld应用,并在我的Samsung A5上运行了它。整个过程大约需要3到4个小时,因为我必须找出32位的东西。

版本号已过时,但很重要,因为当前版本不支持64位。

  1. 须藤apt-get install gradle
  2. 安装Oracle 8

    sudo add-apt-repository ppa:webupd8team / java sudo apt更新; sudo apt install oracle-java8-installer javac -version(确认版本)sudo apt install oracle-java8-set-default

    (将此Java版本设置为默认)

    导出JAVA_HOME = / usr / lib / jvm / java-8-openjdk-i386导出PATH = $ {JAVA_HOME} / bin:$ PATH

  3. 安装adndroid SDK

  curl -O https://dl.google.com/android/android-sdk_r21.0.1-linux.tgz
  tar zxf android-sdk_r21.0.1-linux.tgz
  curl -O https://dl.google.com/android/repository/build-tools_r21-linux.zip
  unzip build-tools_r21-linux.zip
  mkdir android-sdk-linux/build-tools
  mv android-5.0 android-sdk-linux/build-tools/21.0.1
  curl -O https://dl.google.com/android/repository/android-16_r05.zip
  unzip android-16_r05.zip
  mv android-4.1.2 android-sdk-linux/platforms/android-16
  curl -O https://dl.google.com/android/repository/platform-tools_r21-linux.zip
  unzip platform-tools_r21-linux.zip -d android-sdk-linux/
Run Code Online (Sandbox Code Playgroud)
  1. 编写“ Hello World”应用文件夹
cd ~
mkdir android
cd android
mkdir helloworld
cd helloworld
Run Code Online (Sandbox Code Playgroud)
  1. 创建“ AndroidManifest.xml”,如下所示:
<?xml version="1.0" encoding="utf-8"?>
      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
            package="net.gavin.hello"
              versionCode="1"
              versionName="0.1">
      <uses-sdk android:minSdkVersion="16"/>
      <application android:label="Hello">
          <activity android:name=".MainActivity">
              <intent-filter>
                  <action android:name="android.intent.action.MAIN"/>
                  <category android:name="android.intent.category.LAUNCHER"/>
              </intent-filter>
          </activity>
      </application>
  </manifest>
Run Code Online (Sandbox Code Playgroud)
  1. 创建文件夹“ res / layout /”
cd ~/android/helloworld
      mkdir res
      cd res
      mkdir layout
      cd layout
Run Code Online (Sandbox Code Playgroud)
  1. 如下创建“ activity_main.xml”
<?xml version="1.0" encoding="utf-8"?>        <LinearLayout
          xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:gravity="center"
          android:orientation="vertical">
          <TextView
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:id="@+id/my_text"/>         </LinearLayout>
Run Code Online (Sandbox Code Playgroud)
  1. java / net / gavin / hello /
cd ~ 
mkdir java
cd java
mkdir net
cd net
mkdir gavin
cd gavin
mkdir hello
Run Code Online (Sandbox Code Playgroud)

9.按如下方式创建“ MainActivity.java”

package net.gavin.hello;
        import android.app.Activity;
        import android.os.Bundle;
        import android.widget.TextView;
        public class MainActivity extends Activity
        {
            @Override
            protected void onCreate(Bundle savedInstanceState)
            {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                TextView text = (TextView)findViewById(R.id.my_text);
                text.setText("Hello, world!");
            }
        }
Run Code Online (Sandbox Code Playgroud)
  1. 创建构建环境

    cd〜SDK =“ $ {HOME} / android-sdk-linux” BUILD_TOOLS =“ $ {SDK} /build-tools/21.0.1” PLATFORM =“ $ {SDK} / platforms / android-16” mkdir -p build / gen build / obj build / apk

  2. 创建R.java(build / gen / net / gavin / hello / R.java)

“ $ {BUILD_TOOLS} / aapt”包-f -m -J build / gen / -S res -M AndroidManifest.xml -I“ $ {PLATFORM} /android.jar”

  1. 编译它

    javac -source 1.7 -target 1.7 -bootclasspath“ $ {JAVA_HOME} /jre/lib/rt.jar” \ -classpath“ $ {PLATFORM} /android.jar” -d build / obj \ build / gen / net / net / gavin /你好/R.java java / net / gavin / hello / MainActivity.java

  2. 转换为Dalvik代码

    “ $ {BUILD_TOOLS} / dx” --dex --output = build / apk / classes.dex build / obj /

  3. 一起包装内容

    “ $ {BUILD_TOOLS} / aapt”软件包-f -M AndroidManifest.xml -S res / \ -I“ $ {PLATFORM} /android.jar” \ -F build / Hello.unsigned.apk build / apk /

  4. 对齐4字节边界 "${BUILD_TOOLS}/zipalign" -f 4 build/Hello.unsigned.apk build/Hello.aligned.apk

  5. 创建密钥库和密钥 keytool -genkeypair -keystore keystore.jks -alias androidkey \ -validity 10000 -keyalg RSA -keysize 2048 \ -storepass android -keypass android
  6. 安装ket签署人(apksigner) sudo apt-get install apksigner
  7. 用密钥签名应用 "apksigner" sign --ks keystore.jks \ --ks-key-alias androidkey --ks-pass pass:android \ --key-pass pass:android --out build/Hello.apk \ build/Hello.aligned.apk
  8. 安装到设备 "${SDK}/platform-tools/adb" install -r build/Hello.apk
  9. 在设备上运行 "${SDK}/platform-tools/adb" shell am start -n net.gavin.hello/.MainActivity
  10. 著名庆祝,忙碌的cos。

注意:19和20假定您已将手机设置为开发人员模式,并且已通过USB连接到PC。在这种情况下,我只是将它通过ftp下载到我的手机中,然后从那里安装。没问题。