问题的标题是我能给予的最好的,这正是我想要做的:在32位Linux上开发Android应用程序(特别是32位Ubuntu,运行适度的最新内核4.4.0- 66-generic; 3G RAM)。
到目前为止我学到了什么:
com.android.support:appcompat-v7:25
所以当我收到错误com.android.support:appcompat-v7:19
在那个阶段,Android Studio中弹出一条通知,我不需要appcompat for sdk version> 19和构建工具< 21(或类似的东西)然后我删除了appcomat could not resolve com.android.support:appcompat-v7:19
然后下一个错误是com.android.support:appcompat-v7:19
我尝试使用谷歌搜索任何专门针对在32位Linux上开发Android应用程序的指令/流程指南,但找到 none !
从我的google游荡中我偶然发现了Cordova,我喜欢它(也许是因为它是基于CLI的,我可以看到/控制一切,它甚至有一个 - verbose 选项显示所有正在发生的事情)但是在阅读了几篇其他文章之后我拼凑起来在我的32位Linux上构建它,我仍然陷入构建阶段,因为当构建过程达到gradle阶段时,它固执地坚持使用构建工具25.0.2,以及我拼凑的关于如何设置构建工具版本的所有文章,我无法用任何方式说服gradle使用我已经构建的构建工具19已完全安装(使用Android SDK Manager)。为了让gradle为我工作,我尝试在config.xml中设置failed to resolve com.android.support:design:19
,甚至在<preference name="android-targetSdkVersion" value="19"/>
中设置cdvBuildToolsVersion=19
但是在Cordova所有这些努力中我获得了奖励:
任务执行失败&#39;:preBuild&#39;。 找不到Build Tools修订版19.0.0
建立失败
我只想在32位Ubuntu操作系统上设置一个简单,正常,有效的Android开发环境!
方向/指南/提示/帮助请!
btw,请不要建议迁移到64位Linux ...至少现在不行
答案 0 :(得分:4)
关于64位的this精彩教程,我设法让它在32位Ubuntu Linux上100%运行,在旧的Celeron PC上运行。我创建了hellow orld应用程序,并在我的Samsung A5上运行它。整个过程大约需要3到4个小时,因为我必须找出32位的东西。
版本号已过时,但很重要,因为当前版本不支持64位。
安装oracle 8
sudo add-apt-repository ppa:webupd8team / java sudo apt update; 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 export PATH = $ {JAVA_HOME} / bin:$ PATH
安装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/
cd ~ mkdir android cd android mkdir helloworld cd helloworld
<?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>
cd ~/android/helloworld mkdir res cd res mkdir layout cd layout
<?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>
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!");
}
}
创建构建环境
cd~ SDK = “$ {HOME} / Android的SDK-LINUX” BUILD_TOOLS = “$ {} SDK /build-tools/21.0.1” PLATFORM = “$ {} SDK /平台/ Android的16” mkdir -p build / gen build / obj build / apk
创建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”
编译
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
转换为Dalvik代码
“$ {BUILD_TOOLS} / dx” - index --output = build / apk / classes.dex build / obj /
将内容组合在一起
“$ {BUILD_TOOLS} / aapt”包-f -M AndroidManifest.xml -S res / \ -I“$ {PLATFORM} /android.jar”\ -F build / Hello.unsigned.apk build / apk /
与4字节边界对齐
"${BUILD_TOOLS}/zipalign" -f 4 build/Hello.unsigned.apk build/Hello.aligned.apk
keytool -genkeypair -keystore keystore.jks -alias androidkey \
-validity 10000 -keyalg RSA -keysize 2048 \
-storepass android -keypass android
sudo apt-get install apksigner
"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
"${SDK}/platform-tools/adb" install -r build/Hello.apk
"${SDK}/platform-tools/adb" shell am start -n net.gavin.hello/.MainActivity
注意:19和20假设您已将手机设置为开发人员模式,并且已通过USB连接到PC。在这种情况下,我只是将它ftp到我的手机,并从那里安装。没问题。
答案 1 :(得分:0)
我终于提出了一个相当简单的方法:在虚拟机中运行Windows!
虽然Google放弃了对32位Linux的支持,但它仍然支持32位Windows。
所以我所做的就是在我的32位Linux机器上安装32位Windows,然后运行Android Studio - 安装所有先决条件,如Android SDK等。从这一点开始,我只是将注意力转移到寻找面向Windows的指南中的支持/指南。简单,酷,简单!