googlesamples / unity-jar-resolver

Unity plugin which resolves Android & iOS dependencies and performs version management
Other
1.24k stars 339 forks source link

"External Dependency Manager" menu option missing #341

Open golergka opened 4 years ago

golergka commented 4 years ago

Please fill in the following fields:

Unity editor version: 2019.3.6f1 External Dependency Manager version: 1.2.144 Features in External Dependency Manager in use (Android Resolver, iOS Resolver, VersionHandler, etc.): - Plugins SDK in use (Firebase, Admob, Facebook, etc.): Facebook, Firebase Platform you are using the Unity editor on (Mac, Windows, or Linux): Windows Platform you are targeting (iOS, Android, and/or desktop): Android Scripting Runtime (Mono, and/or IL2CPP): IL2CPP

Please describe the issue here:

  1. Install External Dependency Manager unitypackage.

Expected result:

EDM4U adds the registry to Packages/manifest.json under your current Unity project folder.

You can also manaully add this registry later using the Assets > External Dependency Manager > Unity Package Manager Resolver > Add Registries or Window > Google > Game Package Registry > Add To Project menu options.

As per https://firebase.google.com/docs/unity/setup#add-sdks-upm

Actual result:

There's no "External Dependency Manager" optin in "Assets" menu.

Please answer the following, if applicable:

What's the issue repro rate? (eg 100%, 1/5 etc) 100%

stewartmiles commented 4 years ago

@golergka did you disable the Version Handler component? If so, EDM won't enable other parts of the plugin. I recommend taking a look under Assets > External Dependency Manager > Version Handler > Settings. If you want to force enable components of the plugin you'll need to select all DLLs under Assets/ExternalDependencyManager, select Windows > General > Inspector then check Editor and apply in the Select platforms for plugin section.

golergka commented 4 years ago

did you disable the Version Handler component?

No, I haven't. As I described in the original issue, I only installed the unity package,

I recommend taking a look under Assets > External Dependency Manager

There's no External Dependency Manager menu in Assets whatsoever.

stewartmiles commented 4 years ago

It sounds like the Google.VersionHandler.dll (which bootstraps the installation) was disabled somehow.

If you want to force enable components of the plugin you'll need to select all DLLs under Assets/ExternalDependencyManager, select Windows > General > Inspector then check Editor and apply in the Select platforms for plugin section.

Alternatively, delete the plugin from your project and reimport.

nwmqpa commented 4 years ago

I can confirm the problem still appear on External Dependency Manager version 1.2.153, with Unity 2019.3.5f1.

All dlls but ExternalDependencyManager/Editor/Google.VersionHandler.dll are not selecting Editor as a platform for the plugins

EDIT: My issue got resolved after I reinstalled FirebaseAuth manually to correct compilations problems

doom-goober commented 4 years ago

To expand on @nwmqpa 's problem. If you follow the instructions on https://firebase.google.com/docs/unity/setup it tells you to first install EDM then uninstall your old Firebase packages, do somethings with EDM, then reinstall Firebase packages. If you do this in this order, it will trigger a build break in Unity (because the Firebase packages will not be present) and the build break will prevent EDM from appearing in the menu. So, you must do step 3 first (reinstall Firebase Packages) to stop the build break and get the EDM back into the menu.

fmoyano commented 4 years ago

Hi, I'm having the same problem in version 1.2.156 (Unity version 2019.2.19f1). As soon as I import the plugin I'm getting the following error in the console:

NullReferenceException: Object reference not set to an instance of an object UnityEditor.EditorPluginImporterExtension+EditorProperty.Reset (UnityEditor.PluginImporterInspector inspector) (at /Users/builduser/buildslave/unity/build/Editor/Mono/ImportSettings/EditorPluginImporterExtension.cs:37) UnityEditor.Modules.DefaultPluginImporterExtension.RefreshProperties (UnityEditor.PluginImporterInspector inspector) (at /Users/builduser/buildslave/unity/build/Editor/Mono/Modules/DefaultPluginImporterExtension.cs:132) UnityEditor.Modules.DefaultPluginImporterExtension.OnEnable (UnityEditor.PluginImporterInspector inspector) (at /Users/builduser/buildslave/unity/build/Editor/Mono/Modules/DefaultPluginImporterExtension.cs:109) UnityEditor.PluginImporterInspector.OnEnable () (at /Users/builduser/buildslave/unity/build/Modules/AssetPipelineEditor/ImportSettings/PluginImporterInspector.cs:450)

The previous version of the plugin that I had was still using the Play Services Resolver name, and what I did was basically delete this folder and import the latest version. Did I do wrong?

EDIT: when I selected Editor as target platform for all .dlls in the package, it worked. However, I feel a bit of discomfort having to do this manually, as it seems to be something wrong with my project... Is it normal that this is happening?

patm1987 commented 4 years ago

The old platform associations might be persisted in .meta files if you left those in place (ie: just deleted the DLLs) or in your Library directory. I find that the Library directory is typically safe to delete (if you use meta files in your version control settings).

If you'd like to re-import just for piece of mind, you could try closing Unity, deleting EDM4U, Deleting the Library folder, then re-launching Unity and re-importing EDM4U to see if the dll's come back with the correct platform association.

google-oss-bot commented 4 years ago

Hey @golergka. We need more information to resolve this issue but there hasn't been an update in 5 weekdays. I'm marking the issue as stale and if there are no new updates in the next 5 days I will close it automatically.

If you have more information that will help us get to the bottom of this, just add a comment!

renanrider commented 4 years ago

It sounds like the Google.VersionHandler.dll (which bootstraps the installation) was disabled somehow.

If you want to force enable components of the plugin you'll need to select all DLLs under Assets/ExternalDependencyManager, select Windows > General > Inspector then check Editor and apply in the Select platforms for plugin section.

Alternatively, delete the plugin from your project and reimport.

Thanks!!! I changed my Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.157 and in the Inspector select Editor and it works !

Unity version 2019.2.16f1

google-oss-bot commented 4 years ago

Hey @golergka. We need more information to resolve this issue but there hasn't been an update in 5 weekdays. I'm marking the issue as stale and if there are no new updates in the next 5 days I will close it automatically.

If you have more information that will help us get to the bottom of this, just add a comment!

golergka commented 4 years ago

Guys, I'm no longer using this package, please stop tagging me. There's plenty of other users who experienced the same problem and would provide useful info — I think @google-oss-bot should know better than continuing tagging the original author. The fact that I reported this originally doesn't mean that I'm now responsible for maintaining this forever, IMO.

chkuang-g commented 4 years ago

@golergka Sorry for the inconvenience. Currently google-oss-bot changes label and notifies based on the original author's activity.

@nwmqpa @fmoyano @renanrider Did it happen when you install EDM4U or Firebase SDK? Does Play Services Resolver or older version of Firebase in your project before you do so?

I think I saw something funky in Unity 2018 and 2019 when upgrading EDM4U while Play Service Resolver folder is in the Unity project. This could be some bug about how Unity reload DLLs but will need additional investigation about this. When any of these issue happens, try to

  1. Remove Assets/ExternalDependencyManager and Assets/PlayServicesResolver folders. Reimport EDM4U or Firebase packages again. If the error persists, try to restart your Unity editor.
  2. If you have installed EDM4U through Unity Package Manager already (usually installed as a dependency of Firebase), remove Assets/ExternalDependencyManager and Assets/PlayServicesResolver folders. This may be related to duplicated installation issue. https://firebase.google.com/docs/unity/setup#installation_conflict_when_using_unity_package_manager
TimmyBest commented 2 years ago

@golergka did you disable the Version Handler component? If so, EDM won't enable other parts of the plugin. I recommend taking a look under Assets > External Dependency Manager > Version Handler > Settings. If you want to force enable components of the plugin you'll need to select all DLLs under Assets/ExternalDependencyManager, select Windows > General > Inspector then check Editor and apply in the Select platforms for plugin section.

This worked for me! Thank you

Valhalaru commented 2 years ago

**Facebook Unity SDK Proper Setup and Fixing Didn't find class "com.facebook.FacebookContentProvider Error**

Overview

The step by step process of getting the Unity side of FB setup and running by importing the right packages. Also fixes the error – Error AndroidRuntime java.lang.RuntimeException: Unable to get provider com.facebook.FacebookContentProvider: java.lang.ClassNotFoundException: Didn't find class "com.facebook.FacebookContentProvider…”

Steps

  1. Delete any previous Unity Facebook SDKs and re-import the latest. Follow the steps here: https://stackoverflow.com/questions/48275051/unity-cant-build-android-with-facebook-sdk • Delete Facebook SDK folder. • Delete PlayServicesResolver folder. • Delete Plugins Folder. • Now comment the code using Facebook API and namespaces. • Now import latest FacebookSDK and configure it with project details in Edit-setting option. In Assets->ImportPackage->CustomPackage->latestFBUnityPackage In my case it was “facebook-unity-sdk-11.0.0” • Now regenerate Android Manifest file and uncomment the code.

  2. Delete the Assets\PlayServicesResolver Folder again

  3. Download the ExternalDependencyManager and unzip, from here: https://github.com/googlesamples/unity-jar-resolver

  4. In Unity import the “external-dependency-manager-latest” unity package

  5. If the Unity Menu “Assets->ExternalDependencyManager” does not showup goto Assets\ExternalDependencyManager\Editor\1.2.171\, select all the DLLs (in my case there were four). Then In the Unity Inspector for the four DLLs select INCLUDE PLATFORMS->EDITOR. Then hit the “Apply” button

  6. In Unity Assets\FacebookSDK\Plugins\Editor\Dependencies – change the 12 to 11.3.

  7. In Unity->Player Settings->Android->Publishing – Build – Check the boxes to generate the following: Custom Main Manifest; Custom Main Gradle Template; Custom Gradle Properties Template; Custom Proguard File

  8. In Assets\Plugins\Android – proguard-user.txt – add the following:

    -keep class com.facebook.internal.* {public ;} -keep class com.facebook.* {public ; }

  9. In the Unity dropdown menu, select the following option to Resolve the Android dependencies: Assets->ExternalDependencyManager->Android->Resolve Step 9: Solution From - https://github.com/facebook/facebook-sdk-for-unity/issues/509

  10. The error should be resolved and you should be able to run your app with the Facebook SDK. If it doesn’t work, keep working at it, you will get it!

fillmore-admin commented 2 years ago

This is STILL not working.

Maybe I can provide extra information.

When manually copy/pasting the folder to the unity Assets area, it works and shows up.

When using Package Manager > External Dependency Manager for Unity (Made by Google LLC v1.2.157), that's when the menu item is missing. Is the menu item expected to be there? If not, where would we find the same options?

Is there a preferred method? Should it be installed with the package manager, or manually adding files?

Valhalaru commented 2 years ago

This is STILL not working.

Maybe I can provide extra information.

When manually copy/pasting the folder to the unity Assets area, it works and shows up.

When using Package Manager > External Dependency Manager for Unity (Made by Google LLC v1.2.157), that's when the menu item is missing. Is the menu item expected to be there? If not, where would we find the same options?

Is there a preferred method? Should it be installed with the package manager, or manually adding files?

To get the External Depedency Manager for Unity, Resolve menu item option to appear you have to select all the DLLs in unity and check the EDITOR option. Its very simple. Follow step 5 in my walk through above.

  1. If the Unity Menu “Assets->ExternalDependencyManager” does not showup goto Assets\ExternalDependencyManager\Editor\1.2.171, select all the DLLs (in my case there were four). Then In the Unity Inspector for the four DLLs select INCLUDE PLATFORMS->EDITOR. Then hit the “Apply” button

If you have questions, I can troubleshoot it with you. Send me an email at jkniest@gmail.com.

ld07 commented 1 year ago

Guys, I recently had a similar problem and I managed to solve it by disabling my anti virus. If that solves it, I recommend adding Unity to the anti virus's trusted programs list.

fillmore-admin commented 1 year ago

Guys, I recently had a similar problem and I managed to solve it by disabling my anti virus. If that solves it, I recommend adding Unity to the anti virus's trusted programs list.

Windows or MacOS?

mach3000 commented 1 year ago

the solution for me was to comment out script errors and let it all recompile.

i was importing assets to a new project that didn't have gpg yet. was getting "The name 'GPGSIds' does not exist in the current context" errors and external dependency manager didn't exist in menu. commented out all errors in my scripts, saved, and edm installed itself.

ahmedaniss25 commented 1 year ago

problem fixed here: https://youtu.be/1mffBTQ64zI