gpt4 book ai didi

android - 如何在 32 位 Linux 上为 Android 开发

转载 作者:太空宇宙 更新时间:2023-11-03 13:11:57 25 4
gpt4 key购买 nike

问题的标题是我能给出的最好的,而这正是我想做的:在 32 位 Linux(具体来说,32 位 Ubuntu,运行适度最新的内核 4.4.0- 66 通用;3G 内存)。

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

  1. Android SDK 自 >23 起停止支持 32 位 Linux 操作系统上的开发向上
  2. 对于 Android Studio,我无法绕过 appcompat 以便我可以为较低版本的 android(例如版本 19)构建,因为面对没有选项/指令/清除指令,我更改了 com.android.support:appcompat-v7:25com.android.support:appcompat-v7:19所以当我收到 appcomat could not resolve com.android.support:appcompat-v7:19 的错误时,我并不感到惊讶。
  3. 在那个阶段,Android Studio 中弹出一条通知,通知我不需要 appcompat sdk 版本 > 19 和构建工具 < 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 not supporting dev on 32 bit Linux)自 Cordova 以来仍然依赖android-sdk

在我的谷歌漫游中,我偶然发现了 Cordova,我喜欢它(也许是因为它是基于 CLI 的,我可以看到/控制一切,它甚至有一个--verbose 选项展示了引擎盖下发生的所有事情)但是在阅读了其他几篇文章之后我拼凑起来让它在我的 32 位 Linux 上构建,我仍然停留在构建阶段因为当构建过程到达 gradle 阶段时,它顽固地坚持关于使用 build-tools 25.0.2,以及我拼凑的所有关于如何设置 build-tool 版本的文章,我只是无法说服 gradle 使用我已经完全拥有的 build-tools 19安装(使用 Android SDK 管理器)。为了让 gradle 为我工作,我尝试设置 <preference name="android-targetSdkVersion" value="19"/>在 config.xml 中甚至设置 cdvBuildToolsVersion=19~/project_folder/platforms/android/gradle.properties然而,通过在 Cordova 的所有这些努力,我得到了返回:

Execution failed for task ':preBuild'. failed to find Build Tools revision 19.0.0

构建失败

我只想在 32 位 Ubuntu 操作系统上设置一个简单、体面、可工作的 Android 开发环境!

请指示/指南/提示/帮助!

顺便说一句,请不要建议迁移到 64 位 Linux...至少现在不要

最佳答案

正在关注 this很棒的 64 位教程,我设法让它在 32 位 Ubuntu Linux 上 100% 工作,在旧的 Celeron PC 上运行。我创建了 hellow orld 应用程序,并在我的三星 A5 上运行它。整个过程花了大约 3 到 4 个小时,因为我必须为 32 位解决一些问题。

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

  1. sudo apt-get 安装 gradle
  2. 安装甲骨文 8

    sudo add-apt-repository ppa:webupd8team/java 须藤易于更新; sudo apt 安装 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. 安装安卓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/
  1. 编写“Hello World”应用程序文件夹
cd ~
mkdir android
cd android
mkdir helloworld
cd helloworld
  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>
  1. 创建文件夹“res/layout/”
cd ~/android/helloworld
mkdir res
cd res
mkdir layout
cd layout
  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>
  1. java/net/gavin/你好/
cd ~ 
mkdir java
cd java
mkdir net
cd net
mkdir gavin
cd gavin
mkdir hello

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!");
}
}
  1. 创建构建环境

    光盘~ 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"package -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/gavin/hello/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"package -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. 创建 keystore 和 key keytool -genkeypair -keystore keystore.jks -alias androidkey\
    -有效性 10000 -keyalg RSA -keysize 2048\
    -storepass android -keypass android
  6. 安装 ket signer (apksigner)sudo apt-get install apksigner
  7. 使用 key 签署应用程序“apksigner”标志 --ks keystore.jks\
    --ks-key-alias androidkey --ks-pass pass:android\
    --key-pass pass:android --out build/Hello.apk\
    构建/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. 庆祝著名,因为那很忙。

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

关于android - 如何在 32 位 Linux 上为 Android 开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43312171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com