- Home /
Android Java Plugin For Unity Object with null ptr!
So I wanted to test out writing custom plugins for unity. I am using Android Studio 1.1.0. I found tutorial to write a plugin, and it works when defined in manifest as MainActivity.But if I add it as secondary plugin I am having the following error:
04-21 15:13:58.446: I/Unity(23041): Exception: JNI: Init'd AndroidJavaObject with null ptr!
04-21 15:13:58.446: I/Unity(23041): at UnityEngine.AndroidJavaObject..ctor (IntPtr jobject) [0x00000] in :0
04-21 15:13:58.446: I/Unity(23041): at UnityEngine.AndroidJavaObject.AndroidJavaObjectDeleteLocalRef (IntPtr jobject) [0x00000] in :0
04-21 15:13:58.446: I/Unity(23041): at UnityEngine.AndroidJavaObject._GetStatic[AndroidJavaObject] (System.String fieldName) [0x00000] in :0
04-21 15:13:58.446: I/Unity(23041): at UnityEngine.AndroidJavaObject.GetStatic[AndroidJavaObject] (System.String fieldName) [0x00000] in :0
04-21 15:13:58.446: I/Unity(23041): at Share.callShareApp () [0x00000] in :0
04-21 15:13:58.446: I/Unity(23041): at Share.OnGUI () [0x00000] in :0
04-21 15:13:58.446: I/Unity(23041):
My Java code:
package com.example.tomek.shareproject;
import android.content.Intent;
import com.unity3d.player.UnityPlayerActivity;
// import android.content.Context;
import android.os.Bundle;
public class MainActivity extends UnityPlayerActivity {
public static MainActivity ctx;
//@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MainActivity.ctx = this;
}
public void shareText(String subject, String body) {
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, body);
startActivity(Intent.createChooser(sharingIntent, "Share via"));
}
}
And My unity code:
using UnityEngine;
using System.Collections;
public class Share : MonoBehaviour {
string subject = "TITLE";
string body = "TEST BODY TEXT";
public void callShareApp()
{
#if UNITY_ANDROID
AndroidJavaClass cls = new AndroidJavaClass("com.example.tomek.shareproject.MainActivity");
AndroidJavaObject obj = cls.GetStatic<AndroidJavaObject> ("ctx");
obj.Call("shareText", subject, body);
#endif
}
void OnGUI()
{
if (GUI.Button(new Rect(10, 10, 50, 50), "Click me "))
callShareApp();
}
}
Also my manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.unity3d.playe"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="9" />
<application android:label="@string/app_name">
<activity android:name="com.unity3d.player.UnityPlayerActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="unityplayer.UnityActivity" android:value="true" />
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="false" />
</activity>
<!-- Required by my Plugin -->
<activity android:name="com.example.tomek.shareproject.MainActivity" />
</application>
</manifest>
So I read few dozens of topic regarding this error but cannot find a solution. Can anybody point out where I might go wrong about it ?
Best Regards
Comment
Your answer
Follow this Question
Related Questions
Using AndroidJavaClass in a java Unity3d plugin 0 Answers
Can I instance ArrayList[String] through AndroidJavaObject ? 2 Answers
Unity Plugin or Unity in Android SDK. 0 Answers
Uncomiled Java code Android 0 Answers