我正在关注this tutorial制作一个步骤计数器,它可以作为一个Android项目运行良好但是当我将android项目作为一个库并希望在unity3d中使用它时,它会崩溃并给我一个错误{ {1}} 我的统一代码如下:
class not found: exception
我的android代码如下:
void Start ()
{
#if UNITY_ANDROID
AndroidJNI.AttachCurrentThread();
androidClass = new AndroidJavaClass("com.test.testapp.MainActivity");
#endif
}
#if UNITY_ANDROID
public void checkMyIntOnJava(string message){
if (message == "READY") {
int myInt = androidClass.CallStatic<int>("getMyInt");
guiText.text = "My Int: " + myInt;
}
}
制作一个android jar之后,我将它保存在unity3d的插件文件夹中。 我错过了什么吗?
我的Android Manifest文件如下:
public class MainActivity extends UnityPlayerActivity
implements OnDataPointListener, GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener
{
public static void callbackToUnityMethod(int num, String gameObject,String methodName){
_myInt = num;
Log.e("GoogleFit", "in callbackToUnityMethod");
UnityPlayer.UnitySendMessage(gameObject, methodName, "READY");
}
}
答案 0 :(得分:0)
这是我要尝试的两件事。
首先更改AndroidManifest.xml
中的以下行,以便在android:name
属性上匹配包作用域。
<activity android:name="com.xxx.testapp.MainActivity"
android:label="@string/app_name">
到
<activity android:name="com.test.testapp.MainActivity"
android:label="@string/app_name">
另一个潜在的问题是你的类没有被编译,因为它缺少父类和接口中抽象方法的具体实现。要解决此问题,请将这些实施添加到MainActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onConnected(Bundle bundle) {
}
@Override
public void onConnectionSuspended(int i) {
}
@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
}
@Override
public void onDataPoint(DataPoint dataPoint) {
}