我有一個Ionic專案,在構建Android時遇到了困難。我繼承了這個專案,所以我對Fastlane以及它是如何構建java檔案的并不完全熟悉。此外,我在WSL2上使用sdkmanager,并安裝了以下軟體包:
已安裝的包。 ====================] 100% Fetch 遠程倉庫。
路徑 | 版本 | 描述 | 位置
------- | ------- | -------
build-tools;29.0.2 | 29. 0.2 | Android SDK Build-Tools 29. 0.2 | build-tools/29.0.2
仿真器 | 30.8.4 | Android仿真器 |仿真器
patcher;v4 | 1 | SDK Patch Applier v4 | Patcher/v4
平臺-工具| 31.0。 3 | Android SDK平臺-工具 | 平臺-tools
平臺。 android-29 | 5 | Android SDK平臺29 | platforms/android-29
當我運行bundle exec fastlane android build時,它做了一大堆神奇的事情,但最后卻出現了如下錯誤:
> Task :app:compileReleaseJavaWithJavac FAILED
/home/zonyx/git/gitlab/studio/platforms/android/app/src/main/java/org/apache/cordova/camera/CameraLauncher.java:42。error: package android.support.v4.content does not exist
import android.support.v4.content.FileProvider;
^
/home/zonyx/git/gitlab/studio/platforms/android/app/src/main/java/org/apache/cordova/camera/FileProvider。 java:21。error: package android.support.v4.content does not exist.
public class FileProvider extends android. support.v4.content.FileProvider {}
^
/home/zonyx/git/gitlabstudio/platforms/android/app/src/main/java/org/apache/cordova/camera/CameraLauncher。 java:297。error:無法找到符號。
this.imageUri = FileProvider.getUriForFile(cordova.getActivity(),
^
符號:方法 getUriForFile(Activity,String,File)
location: class FileProvider
/home/zonyx/git/gitlab/studio/platforms/android/app/src/main/java/org/apache/cordova/camera/CameraLauncher.java:824。error:無法找到符號
Uri tmpFile = FileProvider.getUriForFile(cordova.getActivity(),
^
符號:方法 getUriForFile(Activity,String,File)
location: class FileProvider
注意:有些輸入檔案使用或覆寫了一個已廢棄的API。
注意:用-Xlint:deprecation for details重新編譯。
注意:有些輸入檔案使用了未選中的或不安全操作。
注意:用-Xlint:unchecked for details重新編譯。
4錯誤
我看到一些關于較新的SDK版本使用androidx.core.content.FileProvider而不是android.support.v4.content.FileProvider的想法。由于整個Android部分是自動構建/生成的,我顯然不能改變java檔案,因為它將被覆寫。
下面是Fastfile中的一行,可能會有幫助:
desc 'Compile a new build for Android'
lane :build do|options|
Dir.chdir('.') do
before_build(options)
ionic_build
sh("ionic cordova build android --device --release --aot false --environment prod --output-hashing all
--sourcemaps false --extract-css true --named-chunks false --build-optimizer true --minifyjs=true
--minifycss=true --optimizejs=true")
deeplinks(action: 'uninstall')
結束
結束。
uj5u.com熱心網友回復:
cordova-plugin-androidx-adapter將自動遷移舊庫以使用AndroidX支持庫。我相信當你的目標是安卓10或更高的系統時,就需要這樣做,這也是轉換的時候。一旦你的所有插件都支持AndroidX,你就可以洗掉該配接器插件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/328894.html
標籤:
上一篇:基于當前時間的Mongodb查詢
