Cus*_*sto 6 android gradle expo eas
我有以下...
情况:
我有一个在世博平台上构建的反应本机应用程序(我们称之为“MyApp”)。我用来eas build构建项目。
最近,我分叉了 expo-camera 软件包来更新 iOS 部分,以便能够使用超广角相机。现在我保持 Android 部分不变。我将我的 fork 上传到 npm-registry asmyApp-expo-camera并将 MyApp 中的依赖项从 更新expo-camera为myApp-expo-camera
错误:
现在,当我构建 iOS 时,一切都按预期工作,但是当我构建 Android 时,它告诉我,它缺少软件包cameraview:
FAILURE: Build failed with an exception.
* What went wrong:
Could not determine the dependencies of task ':app:lintVitalRelease'.
> Could not resolve all artifacts for configuration ':app:debugCompileClasspath'.
> Could not find com.google.android:cameraview:1.0.0.
Required by:
project :app > project :expo > project :expo-camera
Run Code Online (Sandbox Code Playgroud)
问题:
该软件包以 .aar 存档形式cameraview提供。expo-cameraREADME.md中说要expo-camera在托管博览会项目中安装,expo install expo-camera这对我来说不是解决方案,因为我想使用我的 fork。
对于在裸反应本机项目中的安装,它表示将以下内容添加到build.gradle:
allprojects {
repositories {
// * Your other repositories here *
// * Add a new maven block after other repositories / blocks *
maven {
// expo-camera bundles a custom com.google.android:cameraview
url "$rootDir/../node_modules/expo-camera/android/maven"
}
}
}
Run Code Online (Sandbox Code Playgroud)
据我了解,我可以使用“none expo”第三方反应本机包,因为我正在使用,eas build但我无法将其添加到,build.gradle因为我仍然处于 expo 的托管工作流程中(因此甚至没有build.gradle文件)。
有人知道如何解决这种情况吗?
真挚地
碰巧,我找到了解决问题的方法。所以对于有类似问题的每个人:
该包在插件目录中expo-camera有一个文件。withCamera.ts该文件包含将所需的代码行build.gradle写入build.gradle您的实际/自己的项目的逻辑。但要实现此目的,您需要expo-camera在工作流程的预构建部分运行分叉包eas build。这可以通过将以下内容添加到您自己的 expo-project 中的 app.json / app.config.js 来实现:
plugins: ['myApp-expo-camera'],
Run Code Online (Sandbox Code Playgroud)
通过这条线eas build,流程知道您myApp-expo-camera需要预先构建。
还要确保您已将withCamera.ts文件中的包名称调整为您的分支(例如myApp-expo-camera)。
我仍然不明白的是:
为什么您不需要对原始expo-camera包执行此操作...但也许世博会已经在预构建配置中拥有了自己的所有包...谁知道呢!
| 归档时间: |
|
| 查看次数: |
2635 次 |
| 最近记录: |