Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by nixonok · Apr 02, 2018 at 10:58 AM · plugininterfacelistener

Unity Android Java Plugin does not work with interface with listener implement

My office has a network library for Android written in Java which enables fast and easy multiplayer networking,

Now, I've been assigned to make the library work on Unity3D, I did my homework on Unity Plugins, AndroidJavaClass, AndroidJavaProxy, AndroidJavaRunnable etc,

So, I can get most Android/Java methods work Like this,

From Java Class -

 Class MyClass{
 public static Helper helperInstance;
 
     Helper() {
         helperInstance = this;
     }
 
     public static Helper GetInstance() {
 
         if (helperInstance == null) {
             helperInstance = new Helper();
         }
 
         return helperInstance;
     }
 
     public Context mContext;
 
     public String Test(Context mContext) {
         this.mContext = mContext;
         Toast.makeText(mContext, "From Java With Love", Toast.LENGTH_SHORT).show();
         return "This Works";
     }
 }

And can access the methods in the class or imported methods from C# like this -

     AndroidJavaClass unityDefault = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
     AndroidJavaObject gameActivity = unityDefault.GetStatic<AndroidJavaObject>("currentActivity");
     AndroidJavaObject context = gameActivity.Call<AndroidJavaObject>("getApplicationContext");
 
     AndroidJavaClass hClass = new AndroidJavaClass("com.nixonok.pluginunity.Helper");
     AndroidJavaObject helperInstance = RightMeshClass.CallStatic<AndroidJavaObject>("GetInstance");
 
     helloText.text = helperInstance.Call<string>("Test", context);

The problem occurs when I implement the listener for network state change listener:

     public interface StateListener {
         int SUCCESS = 1;
         int FAILURE = 2;
         int DISABLED = 3;
         int RESUME = 4;

         void StateChanged(int var1, int var2);
     }

     public Class MyClass implements StateListener{
 // Called By a Service on network event 
 @Override
     public void meshStateChanged(MeshID meshID, int i) {

     }
     Helper() {
                 helperInstance = this;
             }

             public static Helper GetInstance() {

                 if (helperInstance == null) {
                     helperInstance = new Helper();
                 }

                 return helperInstance;
             }

             public Context mContext;

             public String Test(Context mContext) {
                 this.mContext = mContext;
                 Toast.makeText(mContext, "From Java With Love", Toast.LENGTH_SHORT).show();
                 return "Now, Even This doesn't work";
             }

             void init(){
                 nService nn = new nService(mContext, this);
                 // Sending context of the listener impliment to the service
             }
     }

Now, The the plugin won't work at all, Not even the Test method,

implement Interface callback in C# working using AndroidJavaProxy but without the implement, on the Java class, the service won't start :/

Any good idea for me to get this working without needing to change anything in the library?

Thanks in advance :)

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

77 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Can desktop plugins interact with Unity? 1 Answer

How to pass an interface to Java from Unity code? 2 Answers

pass "interface" to a java plugin..... 0 Answers

UnityPluginLoad never called on iOS, Is it just broken? 1 Answer

How can I access frame data using C# from the NatNetML.dll 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges