27
Апр
2021

java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/appcompat/app/AppCompatActivity;

у меня есть Unity приложение с java плагином, который загружает приложение камеру на моем смартфоне... вот java class:

 import android.content.Intent;
 import android.os.Bundle;
 import android.provider.MediaStore;
 import androidx.appcompat.app.AppCompatActivity;


 public class LoadAndroidApp extends AppCompatActivity 
 {
  @Override
  protected void onCreate(Bundle savedInstanceState) 
  {
    super.onCreate(savedInstanceState);
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    startActivity(intent);
  }
 }

вот мой build.gradle в android library:

 apply plugin: 'com.android.library'

android {
compileSdkVersion 30
buildToolsVersion "30.0.3"

defaultConfig {
minSdkVersion 24
targetSdkVersion 30
versionCode 1
versionName "1.0"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
}

 buildTypes 
  {
   release 
   {
        minifyEnabled false
      proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
   }
  }
}

dependencies 
{
  implementation fileTree(dir: "libs", include: ["*.jar"])
  implementation  'androidx.appcompat:appcompat:1.1.0-alpha04'
  testImplementation 'junit:junit:4.12'
  androidTestImplementation 'androidx.test.ext:junit:1.1.2'
  androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'

}

когда я запускаю мое unity приложение, оно не вылетает, но в Logcat я получаю следующие ошибки:

  2021-04-27 18:45:26.327 27678-27700/? E/Unity: AndroidJavaException: 
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/appcompat/app/AppCompatActivity;
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/appcompat/app/AppCompatActivity;
at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
at com.unity3d.player.UnityPlayer.access$300(Unknown Source:0)
at com.unity3d.player.UnityPlayer$e$1.handleMessage(Unknown Source:95)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:241)
at com.unity3d.player.UnityPlayer$e.run(Unknown Source:20)
Caused by: java.lang.ClassNotFoundException: androidx.appcompat.app.AppCompatActivity
at com.unity3d.player.UnityPlayer.nativeRender(Native Method) 
at com.unity3d.player.UnityPlayer.access$300(Unknown Source:0) 
at com.unity3d.player.UnityPlayer$e$1.handleMessage(Unknown Source:95) 
at android.os.Handler.dispatchMessage(Handler.java:103) 
at android.os.Looper.loop(Looper.java:241) 
at com.unity3d.player.UnityPlayer$e.run(Unknown Source:20) 
at UnityEngine.AndroidJNISafe.CheckException () [0x00000] in <00000000000000000000000000000000>:0 
at UnityEngine.AndroidJNISafe.FindClass (System.String name) [0x00000] in 
<00000000000000000000000000000000>:0 
at UnityEngine.AndroidJavaClass._AndroidJavaClass (System.String className) [0x00000] in 
<00000000000000000000000000000000>:0 

Я читал, что это происходит потому, что файл aar не содержит внешних зависимостей, которые мы добавляем в файл gradle, но у меня не было ошибки при создании своего плагина... Также я увидел вот этот ответ: https://github.com.cnpmjs.org/Archinamon/android-gradle-aspectj/issues/133 - не знаю, это то что мне нужно или нет... Пожалуйста, помогите ... Заранее спасибо.

Источник: https://ru.stackoverflow.com/questions/1275691/java-lang-noclassdeffounderror-failed-resolution-of-landroidx-appcompat-app-ap

Тебе может это понравится...

Добавить комментарий