如何在32位Linux上开发Android
这个问题的标题是我能给出的最好答案,而这正是我想要做的:在32位Linux(特别是32位Ubuntu,运行适度最新的内核4.4.0-66-generic;3G RAM)上开发Android应用程序 到目前为止我所学到/尝试的:如何在32位Linux上开发Android,android,linux,cordova,android-studio,android-gradle-plugin,Android,Linux,Cordova,Android Studio,Android Gradle Plugin,这个问题的标题是我能给出的最好答案,而这正是我想要做的:在32位Linux(特别是32位Ubuntu,运行适度最新的内核4.4.0-66-generic;3G RAM)上开发Android应用程序 到目前为止我所学到/尝试的: Android SDK从>23起停止支持32位Linux操作系统上的开发 向上 对于Android Studio,我无法绕过appcompat,以便为较低版本的Android(例如19版)进行构建,因为在没有选项/指令/清除指令的情况下,我将com.android.sup
com.android.support:appcompat-v7:25
更改为com.android.support:appcompat-v7:19
,因此当我收到appcomat无法解析com.android.support:appcompat-v7:19的错误时,我并不感到惊讶
com.Android.support:appcompat-v7:19
,然后下一个错误是无法解析com.Android.support:design:19
,甚至在~/project\u folder/platforms/Android/gradle.properties中设置cdvBuildToolsVersion=19
,但通过在Cordova的所有努力,我得到了以下回报:
任务“:预生成”的执行失败。
找不到版本19.0.0的生成工具
构建失败
我只想在32位Ubuntu操作系统上设置一个简单、体面、可运行的Android开发环境
请提供指导/指南/提示/帮助
顺便说一句,请不要建议移动到64位Linux…至少现在不是这样我终于想出了一个相当简单的解决办法:在虚拟机中运行Windows
虽然谷歌放弃了对32位Linux的支持,但它仍然支持32位Windows
所以我所做的一切就是在我的32位Linux机器上安装32位Windows,然后在上面运行Android Studio——安装了所有必备组件,如Android SDK……等等。从这一点开始,我只是将重点转移到在面向Windows的指南中寻找支持/指南。简单、酷、简单!下面是关于64位的精彩教程,我是man在32位Ubuntu Linux上运行,在旧的赛扬PC上运行。我创建了hellow World应用程序,并在我的三星A5上运行。整个过程花了大约3到4个小时,因为我必须在32位的PC上解决一些问题
版本号已注明日期,但很重要,因为当前版本不支持64位
sudo-apt-get-install-gradle
安装oracle 8
sudo添加apt存储库ppa:webupd8team/java
sudo apt更新;sudo apt安装oracle-java8-installer
javac-版本(用于确认版本)
sudo apt安装oracle-java8-set-default
(将此java版本设置为默认版本)
导出JAVA_HOME=/usr/lib/jvm/JAVA-8-openjdk-i386
导出路径=${JAVA_HOME}/bin:$PATH
安装adndroid SDK
编写“Hello World”应用程序文件夹
创建“AndroidManifest.xml”,如下所示:
创建“activity_main.xml”,如下所示
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!");
}
}
创建构建环境
光盘~
SDK=“${HOME}/android SDK linux”
BUILD_TOOLS=“${SDK}/BUILD TOOLS/21.0.1”
PLATFORM=“${SDK}/platforms/android-16”
mkdir-p构建/gen构建/obj构建/apk
创建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”
编译它
javac-source 1.7-target 1.7-bootclasspath“${JAVA_HOME}/jre/lib/rt.jar”\
-类路径“${PLATFORM}/android.jar”-d build/obj\
build/gen/net/gavin/hello/R.java/net/gavin/hello/MainActivity.java
转换为Dalvik代码
“${BUILD_TOOLS}/dx”--dex--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\u TOOLS}/zipalign”-f4 BUILD/Hello.unsigned.apk BUILD/Hello.aligned.apk
创建密钥存储和密钥
keytool-genkeypair-keystore keystore.jks-alias androidkey\
-有效期10000-keyalg RSA-密钥大小2048\
-storepass android-keypass android
安装ket签名器(apksigner)
sudo apt get安装apksigner
使用密钥为应用程序签名
“apksigner”符号--ks keystore.jks\
--ks密钥别名androidkey--ks密码:android\
--密钥传递:android--out build/Hello.apk\
build/Hello.aligned.apk
安装到设备
“${SDK}/platform tools/adb”安装-r build/Hello.apk
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
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!");
}
}