Java interface compile error in *APL.xml file

Hi everyone.
I’m developing the google sign plugin on android.
I create the Interface and call the interface functions in event callback.
But compile is always failed because i use the interface.
As you know, It is nothing to need to include the any module in java.
What did i miss?
Hope your help.

////////////////////////////////My_APL.xml//////////////////////////////

<?xml version="1.0" encoding="utf-8"?>






<!-- optional files or directories to copy to Intermediate/Android/APK -->
<resourceCopies>
	<copyFile src="$S(PluginDir)/InterfaceModule/ouya-sdk.jar" dst="$S(BuildDir)/InterfaceModule/ouya-sdk.jar" />
	<copyFile src="$S(PluginDir)/InterfaceModule/PluginTestGameActivity.java" dst="$S(BuildDir)/InterfaceModule/PluginTestGameActivity.java" />
	<copyFile src="$S(PluginDir)/InterfaceModule/TestOnGameActivityListener.java" dst="$S(BuildDir)/InterfaceModule/TestOnGameActivityListener.java" />
</resourceCopies>
org.gradle.parallel=true android.useAndroidX=true android.enableJetifier=true buildscript {
      repositories {
          google()
          jcenter()
      }
      dependencies {
          classpath 'com.android.tools.build:gradle:4.0.0'
          classpath 'com.google.gms:google-services:4.3.8'

          // NOTE: Do not place your application dependencies here; they belong
          // in the individual module build.gradle files
      }
  }

  allprojects {
      repositories {
          google()
          jcenter()
      }
  }
</insert>
apply plugin: 'com.android.application'
  android {
      compileSdkVersion 33
      buildToolsVersion '33.0.0'
      
      compileOptions {
          sourceCompatibility JavaVersion.VERSION_1_8
          targetCompatibility JavaVersion.VERSION_1_8
          coreLibraryDesugaringEnabled true
      }
      defaultConfig {
          applicationId "com.Plugins.GoogleSignIn"
          minSdkVersion 21
          targetSdkVersion 33
          versionCode 1
          versionName "1.0"
          multiDexEnabled true  
          testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
      }
      buildTypes {
          release {
              minifyEnabled false
              proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
          }
      }
  }

  dependencies {
      implementation fileTree(dir: 'libs', include: ['*.jar'])
      implementation 'com.android.support:appcompat-v7:28.0.0'
      implementation 'com.android.support.constraint:constraint-layout:2.0.4'
      implementation 'com.android.support:design:28.0.0'
      implementation 'com.google.android.gms:play-services-auth:21.2.0'
      testImplementation 'junit:junit:4.12'
      androidTestImplementation 'com.android.support.test:runner:1.0.2'
      androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

      implementation 'com.android.support:multidex:1.0.3'
      coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.5'
  }
</insert>
import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; import android.util.DisplayMetrics; import android.view.WindowMetrics;
  import android.content.Intent;
  import android.graphics.Bitmap;
  import android.graphics.BitmapFactory;
  import android.os.AsyncTask;
  import android.os.Bundle;
  import android.support.annotation.NonNull;
  import android.support.annotation.Nullable;
  import android.support.v7.app.AppCompatActivity;
  import android.support.v7.widget.Toolbar;
  import android.util.Log;

  import com.google.android.gms.auth.api.signin.GoogleSignIn;
  import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
  import com.google.android.gms.auth.api.signin.GoogleSignInClient;
  import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
  import com.google.android.gms.common.api.ApiException;
  import com.google.android.gms.tasks.OnCompleteListener;
  import com.google.android.gms.tasks.Task;

  import java.io.InputStream;
  import static java.security.AccessController.getContext;
</insert>
<![CDATA[ /** UE4 plugins can use the GameActivity's listener to get the activity lifecycle events. */ public interface OnGameActivityListener {
    // listeners receive activity result events
    boolean onActivityResult(int requestCode, int resultCode, Intent data);

    // listeners receive create events
    void onCreate(Bundle savedInstanceState);

    // listeners receive destroy events
    void onDestroy();

    // listeners receive pause events
    void onPause();

    // listeners receive resume events
    void onResume();

    // listeners receive start events
    void onStart();

    // listeners receive stop events
    void onStop();
  }

  // The list of game activity listeners
  private static sOnGameActivityListeners = new ArrayList();

  private GoogleSignInClient mGoogleSignInClient = null;

  public void AndroidThunkJava_GoogleSignIn()
  {
    signIn();
  }

  public void GoogleSignIn_Request() {
    // Configure sign-in to request the user's ID, email address, and basic
    // profile. ID and basic profile are included in DEFAULT_SIGN_IN.
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .build();

    // Build a GoogleSignInClient with the options specified by gso.
    mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
  }

  @Override
  public void onCreate(Bundle savedInstanceState) {
  {
    super.onCreate(savedInstanceState);

    GoogleSignIn_Request();
  }

  @Override
  public void onStart() {
    super.onStart();

    // [START on_start_sign_in]
    // Check for existing Google Sign In account, if the user is already signed in
    // the GoogleSignInAccount will be non-null.
    GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
    updateUI(account);
    // [END on_start_sign_in]
  }

  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);

      // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
      if (requestCode == RC_SIGN_IN) {
          // The Task returned from this call is always completed, no need to attach
          // a listener.
          Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
          handleSignInResult(task);
      }
  }

  private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
      try {
          GoogleSignInAccount account = completedTask.getResult(ApiException.class);

          // Signed in successfully, show authenticated UI.
          updateUI(account);
      } catch (ApiException e) {
          // The ApiException status code indicates the detailed failure reason.
          // Please refer to the GoogleSignInStatusCodes class reference for more information.
          Log.w(TAG, "signInResult:failed code=" + e.getStatusCode());
          updateUI(null);
      }
  }

  private void signIn() {
      Intent signInIntent = mGoogleSignInClient.getSignInIntent();
      startActivityForResult(signInIntent, RC_SIGN_IN);
  }

  private void signOut() {
      mGoogleSignInClient.signOut()
              .addOnCompleteListener(this, new OnCompleteListener<Void>() {
                  @Override
                  public void onComplete(@NonNull Task<Void> task) {
                      // [START_EXCLUDE]
                      updateUI(null);
                      // [END_EXCLUDE]
                  }
              });
  }

  private void revokeAccess() {
      mGoogleSignInClient.revokeAccess()
              .addOnCompleteListener(this, new OnCompleteListener<Void>() {
                  @Override
                  public void onComplete(@NonNull Task<Void> task) {
                      // [START_EXCLUDE]
                      updateUI(null);
                      // [END_EXCLUDE]
                  }
              });
  }

  private void updateUI(@Nullable GoogleSignInAccount account) {
      if (account != null) {
          new LoadProfileImage(mImageViewProfile).execute(account.getPhotoUrl().toString());
      } else {
        //TODO
      }
  }

  /**
  * Background Async task to load user profile picture from url
  * */
  private class LoadProfileImage extends AsyncTask<String, Void, Bitmap> {
      ImageView bmImage;

      public LoadProfileImage(ImageView bmImage) {
          this.bmImage = bmImage;
      }

      protected Bitmap doInBackground(String... uri) {
          String url = uri[0];
          Bitmap mIcon11 = null;
          try {
              InputStream in = new java.net.URL(url).openStream();
              mIcon11 = BitmapFactory.decodeStream(in);
          } catch (Exception e) {
              Log.e("Error", e.getMessage());
              e.printStackTrace();
          }
          return mIcon11;
      }

      protected void onPostExecute(Bitmap result) {
          if (result != null) {
              Bitmap resized = Bitmap.createScaledBitmap(result,200,200, true);
              bmImage.setImageBitmap(ImageHelper.getRoundedCornerBitmap(MainActivity.this,
                      resized,250,200,200,
                      false, false, false, false));
              bmImage.setVisibility(View.VISIBLE);
          }
      }
  }
  ]]>
</insert>
// notify listeners for (OnGameActivityListener listener : sOnGameActivityListeners) { listener.onCreate(savedInstanceState); } // notify listeners for (OnGameActivityListener listener : sOnGameActivityListeners) { listener.onStart(); }
<gameActivityOnStopAdditions>
	<insert>
  // notify listeners
  for (OnGameActivityListener listener : sOnGameActivityListeners) {
    listener.onStop();
  }
	</insert>
</gameActivityOnStopAdditions>

<gameActivityOnPauseAdditions>
	<insert>
  // notify listeners
  for (OnGameActivityListener listener : sOnGameActivityListeners) {
    listener.onPause();
  }
	</insert>
</gameActivityOnPauseAdditions>

<gameActivityOnResumeAdditions>
	<insert>
  // notify listeners
  for (OnGameActivityListener listener : sOnGameActivityListeners) {
    listener.onResume();
  }
	</insert>
</gameActivityOnResumeAdditions>
// listeners have a chance to process the activity result for (OnGameActivityListener listener : sOnGameActivityListeners) { // if a listener returns true, the activity result has been handled if (listener.onActivityResult(requestCode, resultCode, data)) { // no further processing needed return; } }
<gameActivityOnDestroyAdditions>
	<insert>
  // notify listeners
  for (OnGameActivityListener listener : sOnGameActivityListeners) {
    listener.onDestroy();
  }
	</insert>
</gameActivityOnDestroyAdditions>
/////////////////////////////compile error/////////////////////////////// UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): > Task :downloader_library:copyDebugJniLibsProjectOnly UP-TO-DATE UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): > Task :permission_library:copyDebugJniLibsProjectOnly UP-TO-DATE UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): > Task :app:compileDebugAidl FAILED UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): FAILURE: Build failed with an exception. UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): * What went wrong: UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): Execution failed for task ':app:compileDebugAidl'. UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): > 1 exception was raised by workers: UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): 37 actionable tasks: 1 executed, 36 up-to-date UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): java.lang.RuntimeException: java.lang.RuntimeException: java.io.IOException: com.android.ide.common.process.ProcessException: Error while executing process C:\Users\Administrator\AppData\Local\Android\Sdk\build-tools\33.0.0\aidl.exe with arguments {-pC:\Users\Administrator\AppData\Local\Android\Sdk\plat forms\android-33\framework.aidl -oZ:\app\build\generated\aidl_source_output_dir\debug\out -IZ:\app\src\main\java -IZ:\app\src\debug\aidl -IC:\Users\Administrator\.gradle\caches\transforms-2\files-2.1\ffc4098914b91b7860907277c6a73623\media-1.0.0\aidl -IC:\Users\Administrator\.gradle\caches\transforms-2\files-2.1\db59709fd9d4cb349176afaa7521632c\core-1.8.0\aid l -IC:\Users\Administrator\.gradle\caches\transforms-2\files-2.1\f8f1ded60081caa70730f6795c311ce8\versionedparcelable-1.1.1\aidl -IZ:\downloader_library\build\intermediates\aidl_parcelable\debug\out -IZ:\permission_library\build\intermediates\aidl_parcelable\debug\out -dC:\Users\Administrator\AppData\Local\Temp\aidl8924882045696087651.d Z:\app\src\main\java\ com\android\vending\licensing\ILicenseResultListener.aidl} UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): * Try: UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): * Get more help at https://help.gradle.org UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): BUILD FAILED in 25s UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): ERROR: cmd.exe failed with args /c "C:\Users\Administrator\Downloads\SignIn\Intermediate\Android\armv7\gradle\rungradle.bat" :app:assembleDebug UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): (see C:\Users\Administrator\AppData\Roaming\Unreal Engine\AutomationTool\Logs\D+UE_4.27\Log.txt for full exception trace) PackagingResults: Error: cmd.exe failed with args /c "C:\Users\Administrator\Downloads\SignIn\Intermediate\Android\armv7\gradle\rungradle.bat" :app:assembleDebug UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): AutomationTool exiting with ExitCode=1 (Error_Unknown) UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): BUILD FAILED PackagingResults: Error: Unknown Error ////////////////////////////////////////////////////////////////////////