1. 2022 年 5 月 5 日に Android studio を使用して新しいプロジェクトを作成し、アプリの下の build.gradle で使用される SDK はバージョン 32 です。
android {
compileSdkVersion 32
buildToolsVersion "32.0.0"
defaultConfig {
applicationId "com.example.aidlclient"
minSdkVersion 19
targetSdkVersion 32
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
...
}
プロジェクトを作成すると、次のようにエラーが報告されます
インストールされている Build Tools リビジョン 32.0.0 が破損しています。SDK Manager を使用して削除し、再度インストールする
翻訳: インストールされているビルド ツール バージョン 32.0.0 が壊れています。SDK マネージャーを使用して削除および再インストールする
第二に、解決策:
SDK インストール ディレクトリを入力します: C:\Users\sunbinkang\AppData\Local\Android\Sdk\build-tools
SDK にはいくつかのバージョンがあることがわかります。
1. dx.bat を 30.0.2 から 32.0.0 ディレクトリにコピーします。
2. dx.jar を 30.0.2 の lib ディレクトリから 32.0.0 の lib ディレクトリにコピーします。
それでおしまい。
3. android:exported の問題点
上記の sdk32 (つまり、Android12) にアップグレードした後、make project はエラーを報告します。
マニフェスト マージの失敗: Android 12 以降を対象とするアプリでは、対応するコンポーネントにインテント フィルタが定義されている場合、「android:exported」に明示的な値を指定する必要があります。詳細については、https://developer.android.com/guide/topics/manifest/activity-element#exported を参照してください。
翻訳:
マニフェストのマージに失敗しました: Android 12 以降を対象とするアプリでは、対応するコンポーネントがインテント フィルターを定義するときに、「 Android:exported 」に明示的な値を指定する必要があります。詳細については、https://developer.android.com/guide/topics/manifest/activity-element#exported を参照してください。
つまり、Android12 以降では、exported 属性を明示的に指定する必要があります。
true: 外部公開
false: 外界にさらされていない