I've created a java binding project for iSpeech. Had to a couple of things (not relevant I don't think) and can build it fine. But when I go to run it, I get an error in a generated java file:
SpeechSynthesis_StateChangedListenerImplementor.java(30,30): Error: org.ispeech.SpeechSynthesis.StateChangedListener is not public in org.ispeech.SpeechSynthesis; cannot be accessed from outside package org.ispeech.SpeechSynthesis.StateChangedListener
This java file is found at \obj\Debug\android\src\mono\org\ispeech\SpeechSynthesis_StateChangedListenerImplementor.java
Here's the java snippet from that file:
public class SpeechSynthesis_StateChangedListenerImplementor
extends java.lang.Object
implements
mono.android.IGCUserPeer,
org.ispeech.SpeechSynthesis.StateChangedListener
{
Here's the (relevant portions, I think...) generated C#:
public partial class SpeechSynthesis : global::Java.Lang.Object, global::Org.Ispeech.ISynthesizer
{
[Register ("org/ispeech/SpeechSynthesis$StateChangedListener")]
public abstract class StateChangedListener
{
internal StateChangedListener ()
{
}
// Metadata.xml XPath field reference: path="/api/package[@name='org.ispeech']/interface[@name='SpeechSynthesis.StateChangedListener']/field[@name='CANCELED']"
[Register ("CANCELED")]
public const int Canceled = (int) 5;
// Metadata.xml XPath field reference: path="/api/package[@name='org.ispeech']/interface[@name='SpeechSynthesis.StateChangedListener']/field[@name='CLOSED']"
[Register ("CLOSED")]
public const int Closed = (int) 1;
}
}
I've tried making it public by adding this to my Metadata.xml:
<attr path="/api/package[@name='org.ispeech']/interface[@name='SpeechSynthesis.StateChangedListener']" name="visibility">public</attr>
And also removing it (although I do need it eventually) with this:
<remove-node path="/api/package[@name='org.ispeech']/interface[@name='SpeechSynthesis.StateChangedListener']"/>
But no dice... any ideas?