我想从Unity3D应用程序中启动Android中的相机应用。我可以通过Android Studio构建Android应用程序来做到这一点。我想创建一个Android Studio项目的JAR插件,并通过Unity Game调用代码。
Unity C#代码
public class UnityAndroidPluginExample : MonoBehaviour
{
AndroidJavaObject javaClass;
public void CallPlugin()
{
javaClass = new AndroidJavaObject("com.mycompany.pluginexample.CameraPluginClass");
javaClass.Call("LaunchCameraApp");
}
}
Android Studio Code
package com.mycompany.pluginexample;
import android.content.Intent;
import android.provider.MediaStore;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;
public class CameraPluginClass extends AppCompatActivity
{
public void LaunchCameraApp()
{
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivity(intent);
}
}
我有错误
androidjavaexception:java.lang.classnotfoundexception:com.mycompany.pluginexample.camerapluginclass
androidjavaexception:java.lang.noclassdeffounderror:失败的分辨率:landroidx/appcompat/app/appcompatactivity
这是我的Android Studio代码,适用于Android
btnCaptureImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 0);
}
});
请帮忙,我被困在这里。简而言之,我无法称呼扩展AppCompatactivity的Java类的方法。如果我删除extends AppCompatActivity
并从Unity调用该Java类中的方法,则只有在使用extends AppCompatActivty
时,我才能从Unity中调用该类内部的任何方法。我正在使用Unity版本2019.1.7f1。
任何帮助都将不胜感激。
更改" appCompatactivity"为"活动"对我有用,尽管我不确定为什么。如果您弄清楚原因,请告诉我!