【发布时间】:2021-02-15 21:32:17
【问题描述】:
我正在尝试使用 soong 构建一个带有预装系统应用程序的 Android 开源项目汽车图像。 android系统应用是用Kotlin编写的。
Android.bp
android_app {
name: "CarApp",
srcs: ["src/**/*.kt", "src/**/*.java"],
resource_dirs: [
"res/"
],
libs: [
"telephony-common",
],
certificate: "platform",
privileged: true,
platform_apis: true,
optimize: {
enabled: false,
},
dex_preopt: {
enabled: false,
},
static_libs: [
"android.car",
"androidx.recyclerview_recyclerview",
"androidx.recyclerview_recyclerview-selection",
"androidx.preference_preference",
"androidx-constraintlayout_constraintlayout",
"android-support-design"
],
plugins: ["dagger2-compiler-2.19"],
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.media.mycarapp">
<uses-feature
android:name="android.hardware.type.automotive"
android:required="true" />
<uses-permission android:name="android.car.permission.CAR_SPEED" />
<uses-permission android:name="android.car.permission.CAR_POWERTRAIN" />
<uses-permission android:name="android.car.permission.CAR_ENERGY" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
<activity android:name=".SetupOptionsList"></activity>
<activity android:name=".StatusActivity"></activity>
<activity android:name=".SetupActivity"></activity>
<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>
当我尝试使用这些文件进行构建时,我得到了
/out/soong/.intermediates/packages/apps/Car/CarApp/CarApp/android_common/manifest_fixer/AndroidManifest.xml:21:18-86 Error:
Attribute application@appComponentFactory value=(androidx.core.app.CoreComponentFactory) from AndroidManifest.xml:21:18-86
is also present at AndroidManifest.xml:21:18-91 value=(android.support.v4.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:12:5-23:19 to override.
将 'tools:replace="android:appComponentFactory" 添加到 AndroidManifest.xml 后,我在构建应用程序时收到未绑定的 prefix error。错误如下。
out/soong/host/linux-x86/bin/manifest_fixer --minSdkVersion 30 --targetSdkVersion 30 --raise-min-sdk-version --extract-native-libs=true --uses-non-sdk-api packages/apps/Car/JulioApp/AndroidManifest.xml o
ut/soong/.intermediates/packages/apps/Car/CarApp/CarApp/android_common/manifest_fixer/AndroidManifest.xml
error: unbound prefix: line 13, column 4
如何解决这个问题?
【问题讨论】:
-
切勿使用不常见的缩写。什么是 AOSP?
Is it Android Open Source Project? -
是的。更新
-
AOSP 是一个很常见的缩写。
标签: android android-source android-soong