#android #release #zxing
#Android #выпуск #zxing
Вопрос:
Я не понимаю, почему эта ошибка. Я компилировал на другом компьютере, и компиляция релиза прошла нормально, но на этом компьютере я получаю :
Relying on packaging to define the extension of the main artifact has been deprecated and is scheduled to be removed in Gradle 2.0
:app:preBuild
:app:preReleaseBuild
:app:checkReleaseManifest
:app:preDebugBuild
:app:prepareComAndroidSupportAppcompatV71910Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServices4323Library UP-TO-DATE
:app:prepareReleaseDependencies
:app:compileReleaseAidl
:app:compileReleaseRenderscript
:app:generateReleaseBuildConfig
:app:mergeReleaseAssets
:app:processReleaseManifest
:app:crashlyticsCleanupResourcesRelease
:app:crashlyticsUploadStoredDeobsRelease
:app:crashlyticsGenerateResourcesRelease
:app:generateReleaseResValues UP-TO-DATE
:app:generateReleaseResources
:app:mergeReleaseResources
:app:processReleaseResources
:app:generateReleaseSources
:app:compileReleaseJava
/Users/wimha/wimhaAndroidApp/app/src/main/java/com/google/zxing/client/android/camera/AutoFocusManager.java:63: error: method executeOnExecutor in class AsyncTask<Params,Progress,Result> cannot be applied to given types;
outstandingTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
^
required: Executor,CAP#1[]
found: Executor
reason: formal varargs element type CAP#1 is not accessible from class AutoFocusManager
where Params,Progress,Result are type-variables:
Params extends Object declared in class AsyncTask
Progress extends Object declared in class AsyncTask
Result extends Object declared in class AsyncTask
where CAP#1 is a fresh type-variable:
CAP#1 extends Object from capture of ?
/Users/wimha/wimhaAndroidApp/app/src/main/java/com/google/zxing/client/android/InactivityTimer.java:52: error: method executeOnExecutor in class AsyncTask<Params,Progress,Result> cannot be applied to given types;
inactivityTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
^
required: Executor,CAP#1[]
found: Executor
reason: formal varargs element type CAP#1 is not accessible from class InactivityTimer
where Params,Progress,Result are type-variables:
Params extends Object declared in class AsyncTask
Progress extends Object declared in class AsyncTask
Result extends Object declared in class AsyncTask
where CAP#1 is a fresh type-variable:
CAP#1 extends Object from capture of ?
/Users/wimha/wimhaAndroidApp/app/src/main/java/com/google/zxing/client/android/share/AppPickerActivity.java:35: error: method executeOnExecutor in class AsyncTask<Params,Progress,Result> cannot be applied to given types;
backgroundTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
^
required: Executor,CAP#1[]
found: Executor
reason: formal varargs element type CAP#1 is not accessible from class AppPickerActivity
where Params,Progress,Result are type-variables:
Params extends Object declared in class AsyncTask
Progress extends Object declared in class AsyncTask
Result extends Object declared in class AsyncTask
where CAP#1 is a fresh type-variable:
CAP#1 extends Object from capture of ?
3 errors
:app:compileReleaseJava FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:compileReleaseJava'.
> Compilation failed; see the compiler error output for details.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 1 mins 56.213 secs
Есть идеи?
Ответ №1:
Вам не нужно удалять Java 8. Просто откройте «Структура проекта» (Ctrl alt shift s), выберите «Расположение SDK» и установите «Расположение JDK» в path, с JDK 7.
Ответ №2:
Удаление Java 8 решило проблему.
Комментарии:
1. Использование Java 7 для компиляции было бы лучшим ответом, если вы хотите предложить использовать более подходящую версию Java…
Ответ №3:
Я решил, заменив анонимные объявления следующим образом
private AsyncTask<?, ?, ?> outstaindingTask;
с фактическими типами:
private AsyncTask<Object, Object, Object> outstandingTask;
Вы можете найти список типов для использования, просмотрев определение созданного класса, например, в случае AutoFocusManager
:
outstandingTask = new AutoFocusTask();
AutoFocusTask
Класс объявлен как:
private final class AutoFocusTask extends AsyncTask<Object,Object,Object>
Ответ №4:
Я не уверен, как вы компилируете этот код, но он корректен как код Java. Он отлично компилируется с помощью сборки Maven. Похоже, это ошибка в используемом вами компиляторе.
Комментарии:
1. Удаление Java 8 решило проблему. docs.oracle.com/javase/8/docs/technotes/guides/install /…