maven 发布:Unity google.play.core EDM4U自定义gradle UnityPlayer找不到符号构建错误

c9qzyr3d  于 2023-10-17  发布在  Maven
关注(0)|答案(1)|浏览(279)

更新:
我能够使用Maven构建本地.m2/repoisitry来解决依赖问题,并简单地包含com/google/.文件夹直接。这解决了插件冲突,但也删除了mainTemplate. gradle中的com.google.play.core依赖项。它原本就在这里
dependencies { // Android Resolver配置开始实施'com.google.android.play:asset-delivery:2.0.0' // Assets/GooglePlayPlugins/com.google.play.assetdelivery/Editor/配置.xml:3实施'com.google.android.play:core-common:2.0.0' // Assets/GooglePlayPlugins/com.google.play.core/Editor/配置.xml:3 // Android Resolver配置结束DEPS}
Unity应将此功能作为应用内购买的依赖项包含在内,但在查看Bee/Android/./build.gradle时,没有包含此库,沿着UnityPlayer未得到解决,导致Gradle构建失败。我真的不知道是什么导致了这个问题;
{构建路径} - Assets\Library\Bee\Android\Prj\IL2CPP\Gradle\unityLibrary\src\main\java\com\unity3d\player\UnityPlayerActivity.java:15:错误:找不到符号public class UnityPlayerActivity extends Activity implements IUnityPlayerLifecleEvents ^符号:class IUnityPlayerLifecleEvents {Build-Path} - Assets\Library\Bee\Android\Prj\IL2CPP\Gradle\unityLibrary\src\main\java\com\unity3d\player\UnityPlayerActivity.java:17:错误:找不到受保护的UnityPlayer mUnityPlayer;//不要改变这个变量的名字;引用自本机代码^符号:类UnityPlayer位置:class UnityPlayerActivity {Build-Path} - Assets\Library\Bee\Android\Prj\IL2CPP\Gradle\unityLibrary\src\main\java\com\unity3d\player\UnityPlayerActivity.java:40:错误:找不到符号mUnityPlayer = new UnityPlayer(this,this);
这似乎指向Unity实现的一个问题,类似于此; https://github.com/yasirkula/UnityIonicIntegration/issues/41
这是一个Android Studio版本。在Unity中构建时,我还没有找到任何类似的东西,尽管我会继续寻找。
如果我按照EDM 4U的要求删除项目设置中的自定义.gradle选项,它将生成并崩溃,AssetPackManager.GetPackStatus()No Implementation。如果我包括EDM 4U自定义gradle我得到上述错误。
我更新了我的Unity编辑器,希望这能解决Gradle冲突。确保EDM 4U指向正确的repository/com文件夹并运行Force Resolve,但我没有运气。接下来的步骤可能包括降级Gradle版本,因为这对类似的Google插件以前的问题有效,但这个问题似乎更像是Unity Gradle问题,而不是插件冲突。
我已经删除了库文件,并重新构建了主项目,但继续得到UntiyPlayer的问题,似乎无法找到任何解决方案在线。
任何帮助找到一个在这个问题的道路将是一个巨大的帮助。
原件:
我在处理google.play.core库之间的冲突时遇到了困难;
Assets/GooglePlayPlugins/com.google.play.assetdelivery 2.0.0 Assets/GooglePlayPlugins/com.google.play.core 1.10.3
这是一个记录在谷歌播放统一插件的问题;https://github.com/google/play-unity-plugins/blob/master/README.md#play-core-conflicts
下载的空单片PlayCore库.zip包含以下文件结构;
Assets/GooglePlayPlugins/com/google/android/play/core/2.0.0
在/core/上有一个(maven-metadata.xml)文件,在/2.0.0级别上有(core-2.0.0.aar和core-2.0.0.pom)文件。
按照修复中的步骤,我无法让编辑器>谷歌>构建Android应用程序包工作。下面是一个编译错误:
Copyright © 2018 www.cnmj.com All Rights Reserved版权所有[com.google.android.playcom.google.android.play:asset-delivery:2.0.0] AndroidManifest.xml:24:17-38中的属性元数据# www.example.com .core.assetpacks.versionCode@value value=(20000)也出现在[com.google.android.play:core:1.10.3] AndroidManifest.xml:38:17-38 value=(11003)中。建议:将“tools:replace=“android:value”"添加到AndroidManifest.xml中的元素以覆盖。
问题是在使用EDM 4U-Unity Local Maven Repo Directory的外部Dependency Manager时出现的。我已经包含了空的单片Play Core库,并将Android Resolver Settings指向它,但在自定义mainTemplate.gradle文件中没有任何包含。
我尝试过按照这种方法手动更新mainTemplate.gradle; Encountering two errors when building unity for android, firebase SDK

project.repositories {
    def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")
    maven {
        url "https://maven.google.com"
    }
    maven {
        url "Assets/GooglePlayPlugins/com/google/android/play/core/2.0.0"
    }
    mavenLocal()
    mavenCentral()
}

也可以直接实现插件;

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation 'com.google.android.play:asset-delivery:2.0.0' // 
Assets/GooglePlayPlugins/com/google/android/play/core/maven-metadata.xml.xml:3

implementation 'com.google.android.play:asset-delivery:2.0.0' // 
Assets/GooglePlayPlugins/com.google.play.assetdelivery/Editor/Dependencies.xml:3
implementation 'com.google.android.play:core:1.10.3' // 
Assets/GooglePlayPlugins/com.google.play.core/Editor/PlayCoreDependencies.xml:3
implementation 'com.google.android.play:core-common:2.0.0' // 
Assets/GooglePlayPlugins/com.google.play.core/Editor/Dependencies.xml:3
}

但EDM 4U> Force Resolve会删除这些更改。其他方法建议手动将repo添加到maven settings.xml(How to configure maven local and remote repository in gradle build file?),但我真的不确定是否要这样做,并且无法在我的机器上定位该文件或文件夹。
我花了几天时间在google上搜索,试图了解解决方案中的zip库文件,但似乎找不到一个清晰或有意义的方法来实现maven repo。

任何帮助理解这个问题将是非常伟大的,因为我觉得我在兜圈子。
非常感谢。

sdnqo3pr

sdnqo3pr1#

2.0.0 Play Core库已被弃用,不适用于资产交付。我能够通过安装一个本地MAVEN存储库来解决这个问题,该存储库包含一个用于2.0.0 Play Core的空文件夹,您可以将插件自动解析器指向该文件夹以删 debugging 误,但这并不能解决让应用程序连接到Play商店进行购买或资产交付的问题。
Play Core库现在都包含在UNITY包管理器的In-App Purchasing和Adressables包中,因此无需直接使用这些库。
https://docs.unity3d.com/Packages/[email protected]/manual/StoresSupported.html
https://docs.unity3d.com/2023.3/Documentation/Manual/com.unity.addressables.html
如果您计划通过采购或资产交付发布到Google Play商店,则需要将UNITY编辑器更新到2022或更高版本,并安装应用内采购或Addressables包,因为这些是用于 Package Play核心库并连接到Play商店的内置系统。
如果您出于其他原因使用Google Play Core 2.0.0,您可以访问此链接,该链接描述了如何实现MAVEN存储库。
https://github.com/google/play-unity-plugins/blob/master/README.md#play-core-conflicts
但请注意,鉴于Unity中的应用内购买和可寻址解决方案,这些插件已经过时。由于我自己的项目离集成这些解决方案还有沿着,一个解决方案是在构建时将资产包含在项目中交付,并将其放在付费墙后面。简单地使用应用内购买为任何购买提供收据,并使用此来解锁应用中的内容-布尔标志,gameObject.SetActive(true),无论效果如何。
如果您的资产很大,这不是一个理想的解决方案,但它确实解决了插件的播放资产交付问题。理想情况下,您将能够将您的项目迁移到Addressables,但如果这是不可能的,这是可以理解的,因为随着主要系统和新的Unity版本的推出,在这个时候发生了一些重大的变化。

相关问题