我跟随本教程从命令行构建Android应用程序。这是我使用USB调试在设备上构建和安装应用程序的批处理脚本。
aapt package -f -m -J build\gen\ -S res -M AndroidManifest.xml -I "%ANDROID_HOME%\platforms\android-30\android.jar"
javac -source 1.7 -target 1.7 -bootclasspath "%JAVA_HOME%\jre\lib\rt.jar" -classpath "%ANDROID_HOME%\platforms\android-30\android.jar" -d build\obj build\gen\net\hanshq\hello\R.java src\net\hanshq\hello\MainActivity.java
java -jar "%ANDROID_HOME%\build-tools\30.0.0\lib\dx.jar" --dex --output=build\apk\classes.dex build\obj
aapt package -f -M AndroidManifest.xml -S res\ -I "%ANDROID_HOME%\platforms\android-30\android.jar" -F build\Hello.unsigned.apk build\apk
zipalign -f -p 4 build\Hello.unsigned.apk build\Hello.aligned.apk
call apksigner sign --ks debug.keystore --ks-key-alias androiddebugkey --ks-pass pass:android --key-pass pass:android --out build\Hello.apk build\Hello.aligned.apk
adb install -r build\Hello.apk
adb shell am start -n net.hanshq.hello/.MainActivity我使用OpenJDK-17、Android-30平台版本和Android30.0.0构建工具版本。
这是AndroidManifest.xml文件。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.hanshq.hello"
versionCode="1"
versionName="0.1">
<uses-sdk android:minSdkVersion="30"/>
<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>我想问的是,当我将minSdkVersion设置为30时,它会很好地安装在我的设备上。但是,当我将它设置为较低的值(如21 )时,它仍然正确安装,但输出如下警告弹出。
这个应用程序是为较旧版本的Android而开发的,可能无法正常工作。尝试检查更新,或与开发人员联系。
我想问的是,这个警告是与minSdkVersion的价值有关还是因为我使用的Android平台和构建工具的版本?提前谢谢你的回答。
编辑:我的设备正在运行Android 11操作系统
发布于 2022-06-16 15:04:52
我设法消除了错误
下面是我的构建脚本供参考:
target=$1
if [ "$1" = "" ]; then
target="a.apk"
fi
aapt package -f -v \
-I ~/android-sdk/platforms/android-32/android.jar \
-J src -m \
-M AndroidManifest.xml \
-S res \
-F bin/resources.ap_
javac \
-classpath ~/android-sdk/platforms/android-32/android.jar \
-source 11 -target 11 \
src/dom/domain/*.java
d8 --output bin src/*/*/*.class \
--lib ~/android-sdk/platforms/android-32/android.jar
cd bin
mv resources.ap_ $target
aapt add $target classes.dex
printf 'android\n' | apksigner sign --min-sdk-version 29 \
--v4-signing-enabled true \
-ks ~/code/android/debug.keystore $target
adb install --no-incremental -r $targethttps://stackoverflow.com/questions/71367603
复制相似问题