Вопросы по тегу: android

(398)

Получение ошибки говорит: «Имя записи 'res/layout/test_toolbar.xml' столкнулось» при создании подписанного apk

Сегодня я обновил свою студию Android с 3.5.x до 3.6 и получил сообщение об ошибке при создании подписанного apk для варианта сборки, показывающее следующее сообщение - Имя записи ' res/layout/test_toolbar.xml' столкнулся У меня вообще нет макета с таким названием во всем проекте. У меня есть пользовательский вариант сборки с именем «stage», и всякий раз, когда я пытаюсь собрать подписанный apk, он всегда терпит неудачу. Я считаю найти любое решение еще. Пожалуйста, помогите мне с этой проблемой. СпасибоОбновление: Та же проблема может возникнуть и с этими следующими сообщениями (как я обнаружил в AS - 3.6.1 - Продолжается иногда с 4.x.x). Так что не беспокойтесь о такого рода неизвестных и неразрешимых сообщениях. На данный момент я обнаружил два новых типа сообщений при создании подписанного apk: Имя записи 'kotlin/collections/MapWithDefault.kotlin_metadata' столкнулось Доступ запрещен Результат тот же. Иногда для этого может потребоваться Invalidate Cache and Restart AS. Дайте мне знать ваши выводы. СпасибоБыстрое решение: (самый популярный ответ, и я согласен) удалить папку проекта\создать удалить папку проекта\отладить удалить папку проекта\выпуск удалить папку проекта\приложение\сборка удалить папку проекта\приложение\сборка\отладка удалить папку проекта\приложение\сборка\релиз Значит, вам нужно удалить все сборки, каталоги отладки и выпуска.Обратите внимание, что вы, возможно, не сможете удалить все каталоги отладки и выпуска, но вы можете удалить все их содержимое.
A

A S M Sayem

2 года назад

Ответов: 26

Как обновить LiveData ViewModel из фоновой службы и интерфейса обновления

Недавно я изучаю архитектуру Android, недавно представленную Google. Из Документации я нашел это:public class MyViewModel extends ViewModel { private MutableLiveData> users; public LiveData> getUsers() { if (users == null) { users = new MutableLiveData>(); loadUsers(); } return users; } private void loadUsers() { // do async operation to fetch users } } действие может получить доступ к этому списку следующим образом:public class MyActivity extends AppCompatActivity { public void onCreate(Bundle savedInstanceState) { MyViewModel model = ViewModelProviders.of(this).get(MyViewModel.class); model.getUsers().observe(this, users -> { // update UI }); } } Мой вопрос: я собираюсь сделать это: в функции loadUsers() я извлекаю данные асинхронно, где я сначала проверю базу данных (комнату) на наличие этих данных Если я не получу туда данные, я вызову API для получения данных с веб-сервера. Я вставлю полученные данные в базу данных (Комната) и обновлю пользовательский интерфейс в соответствии с данными. Какой рекомендуемый подход для этого?Если я запускаю Service для вызова API из метода loadUsers(), как мне обновить MutableLiveData> пользователейпеременная из этого Service?
S

S Haque

5 лет назад

Ответов: 5

Конфликт с зависимостью «com.android.support:support-annotations» в проекте «:app». Разрешенные версии для приложения (26.1.0) и тестового приложения (27.1.1) различаются.

Я новичок в разработке приложений для Android. Когда я попытался создать новый проект Android Project... появилось следующее сообщение..Ошибка: Не удалось выполнить задачу ':app:preDebugAndroidTestBuild'. Конфликт с зависимостью "com.android.support:support-annotations" в проекте ":app". Разрешенные версии для приложения (26.1.0) и тестового приложения (27.1.1) различаются. Подробнее см. https://d.android.com/r/tools/test-apk-dependency-conflicts.html. Информация: Задачи Gradle [:app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar] Это скриншот моего проекта нажмите здесь, чтобы увидеть скриншот ошибки, которую я получиля также пытался добавить этот код в свою зависимость.. androidTestCompile 'com.android.support:support-annotations:23.3.0' это не сработало. Я также пробовал 27.1.1 и 26.1.0. тоже не получилось.
h

hashTag_bibu

4 года назад

Ответов: 15

Как расположить ниже самого низкого из двух представлений в ConstraintLayout?

У меня есть два вида заголовков: HeaderViewA и HeaderViewB. Эти виды могут иметь любую комбинацию видимости видимый или ушел.Мне нужно, чтобы BigView располагался под как самый низкий из HeaderViewA/HeaderViewB.*100012 *Возможно ли это без вложения в ConstraintLayout?
Z

ZakTaccardi

5 лет назад

Ответов: 2

Не удалось найти инструменты.jar. Убедитесь, что C:\Program Files\Java\jre1.8.0_151 содержит допустимую установку JDK.

Несмотря на то, что я вручную настроил структуру проекта JDK структура файла/проекта, эта ошибка по-прежнему отображается ОШИБКА: сборка не удалась с исключением.`Что пошло не так: Не удалось выполнить задачу ':sample:compileReleaseJavaWithJavac'. Не удалось найти tools.jar. Убедитесь, что C:\Program Files\Java\jre1.8.0_151 содержит допустимую установку JDK.` Я не понимаю, почему он все еще ищет C:\Program Files\Java\jre1.8.0_151 вместо JDK
V

Viswesvar Sekar

4 года назад

Ответов: 25

«Модуль был скомпилирован с несовместимой версией Kotlin. Бинарная версия его метаданных — 1.5.1, ожидаемая версия — 1.1.16»

Я новичок в разработке приложений Kotlin. При попытке собрать приложение возникает следующая ошибка - e: C:/Users/Lenovo/.gradle/caches/transforms-2/files-2.1/32f0bb3e96b47cf79ece6482359b6ad2/jetified-kotlin-stdlib-jdk7-1.5.0.jar!/META-INF/kotlin-stdlib- jdk7.kotlin_module: модуль был скомпилирован с несовместимой версией Kotlin. Бинарная версия его метаданных — 1.5.1, ожидаемая версия — 1.1.16. Это про обновление модуля? Тогда как его обновить?
S

Saheel Sapovadia

8 месяцев назад

Ответов: 17

Не удалось найти цель с хэш-строкой «android-25»

У меня Android Studio 2.2. Я пытаюсь открыть проект, но получаю сообщение об ошибке "Не удалось найти цель с хэш-строкой "android-25"". Под сообщением об ошибке я вижу ссылку «Установить отсутствующие платформы и синхронизировать проект». Если я нажму на эту ссылку, я получу другую ошибку, которая говорит "Следующие пакеты недоступны: - Идентификатор пакета платформы; android-25". В инструменте Android SDK я вижу уже установленный «Android 7.0» (уровень API 24). При проверке сведений о версиях Android и уровнях его API я обнаружил, что Android Nougat имеет уровни API 24-25. Я хотел бы знать, как я могу обновить SDK с API24 до 25?
K

KurioZ7

5 лет назад

Ответов: 10

Могу ли я использовать библиотеку, которая использовала поддержку Android, с проектами Androidx.

Я знаю, androidx и поддержка зависимости вызывают ошибку multidex Мы не можем использовать поддержку androidx и android одновременно. Поэтому я полностью перехожу на androidx. но одна из моих библиотек зависимостей использовала поддержку Android «lottie».Что мы можем сделать в описанной выше ситуации? Должен ли я удалить «лоти» из моего проекта.ниже моя оценкаdefaultConfig { minSdkVersion 19 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true multiDexEnabled true } ext{ lottieVersion = "2.5.4" } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" def androidx = "1.0.0-rc01" api "androidx.constraintlayout:constraintlayout:1.1.2" api "androidx.appcompat:appcompat:$androidx" api "androidx.recyclerview:recyclerview:$androidx" api "androidx.cardview:cardview:$androidx" api "androidx.core:core-ktx:$androidx" api "com.google.android.material:material:1.0.0-rc01" implementation "com.google.code.gson:gson:2.8.5" implementation "androidx.multidex:multidex:2.0.0" implementation "com.airbnb.android:lottie:$lottieVersion" }
H

Hitesh Dhamshaniya

3 года назад

Ответов: 12

Котлин: Что означает «возврат @»?

Я использую RxJava в одном из своих проектов, я преобразовал один из своих классов в Kotlin с помощью плагина Android Studio и в одной из карт flatMap лямбда (Func1 в java), промежуточные результаты выглядят так следующее @Func1.Понятия не имею, что это значит.something.flatMap(Func1>> { val isTemporaryClone = it.isATemporaryClone val isTheOriginalToken = it.tokenIsOriginalHere if (isTemporaryClone) { if (!isTheOriginalToken) { return@Func1 paramsError("Token is always original for temp articles") } return@Func1 mJobRunner.doNotRun(DeleteArticleJob.TAG) .doOnNext(deletePersonalActionById(articleId)) } runArticleJobAsync(DeleteArticleJob.TAG, it) })
G

Glenn Sonna

5 лет назад

Ответов: 2

Изменить цвет текста в строке состояния, когда primaryDark белый

Я пытаюсь воспроизвести поведение приложения Google Calendar: но я не нашел способа изменить цвет текста статуса. Если я установлю colorPrimaryDark как белый, я не вижу ни значков, ни текста строки состояния, потому что их цвет также белый.Можно ли изменить цвет текста строки состояния?
M

MarcForn

6 лет назад

Ответов: 12

Выход из плагина Fabric

Я хочу выйти из плагина Fabric, используемого в Android Studio. Щелчок по значку профиля не работает, но мне нужно переключить учетную запись для другого проекта. Что делать?
u

user6773311

5 лет назад

Ответов: 2

Кэш зависимостей Gradle может быть поврежден (иногда это происходит после тайм-аута сетевого подключения).

У меня возникает такая ошибка, как ее исправить.Error:Unable to load class 'org.gradle.tooling.internal.protocol.test.InternalTestExecutionConnection'. Possible causes for this unexpected error Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.) Re-download dependencies and sync project (requires network)The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem. Stop Gradle build processes (requires restart)Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.
V

Vatsal Harde

6 лет назад

Ответов: 40

Родной сбой Android 7: libc.so tgkill

Я вижу этот родной сбой со следующей трассировкой стека.Это происходит только в Android 7.0 и 7.1. В приложение, которое находится в разработке уже несколько лет, не было добавлено ничего нового, но поскольку все больше устройств обновляется до Nougat, этот сбой теперь происходит часто и становится неприятностью.Буду признателен за любой совет.native: pc 000000000007a6c4 /system/lib64/libc.so (tgkill+8) native: pc 0000000000077920 /system/lib64/libc.so (pthread_kill+64) native: pc 000000000002538c /system/lib64/libc.so (raise+24) native: pc 000000000001d24c /system/lib64/libc.so (abort+52) native: pc 000000000001225c /system/lib64/libcutils.so (__android_log_assert+224) native: pc 00000000000610e0 /system/lib64/libhwui.so native: pc 000000000003908c /system/lib64/libhwui.so native: pc 000000000003609c /system/lib64/libhwui.so native: pc 000000000003b4fc /system/lib64/libhwui.so native: pc 000000000003c520 /system/lib64/libhwui.so native: pc 000000000003e694 /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+152) native: pc 00000000000127f0 /system/lib64/libutils.so (_ZN7android6Thread11_threadLoopEPv+336) native: pc 00000000000a50b0 /system/lib64/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+116) native: pc 00000000000770f4 /system/lib64/libc.so (_ZL15__pthread_startPv+204) native: pc 000000000001e7d0 /system/lib64/libc.so (__start_thread+16) Вот список затронутых устройств: ОБНОВЛЕНИЕ 18.07:Все еще не могу разобраться в этом, поэтому я решил приобрести устройство, которое было наиболее часто встречающимся и имело разумную цену, которым оказалась версия Samsung Galaxy J3 2017 года с Android 7.0. К сожалению, я все еще не могу воспроизвести сбой.Я также улучшил использование памяти в рабочем приложении, но сбой все еще происходит.Судя по всем комментариям и моим собственным исследованиям, похоже, что это связано с динамически подключаемыми NDK, но я их не использую, и трудно выяснить, работают ли какие-либо зависимости.Я хотел бы поделиться своими зависимостями, было бы здорово, если бы другие люди, сталкивающиеся с той же проблемой, могли сообщить, используют ли они одну из тех же зависимостей - возможно, таким образом мы сможем определить виновника.// App Compat compile 'com.android.support:support-v4:23.0.1' compile 'com.android.support:appcompat-v7:23.0.1' compile 'com.android.support:cardview-v7:23.0.1' compile 'com.android.support:recyclerview-v7:23.0.1' // Play Services compile 'com.google.android.gms:play-services-location:8.3.0' compile 'com.google.android.gms:play-services-maps:8.3.0' compile 'com.google.android.gms:play-services-analytics:8.3.0' compile 'com.google.android.gms:play-services-appindexing:8.3.0' compile 'com.google.android.gms:play-services-ads:8.3.0' // Misc Libraries compile 'fr.avianey.com.viewpagerindicator:library:2.4.1@aar' compile files('app/libs/htmlcleaner-2.7.jar') compile files('app/libs/protobuf-java-2.6.0.jar') compile files('app/libs/nineoldandroids-2.4.0.jar') // Fabric compile('com.twitter.sdk.android:twitter:1.13.0@aar') { transitive = true; } compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') { transitive = true; } Для людей, столкнувшихся с таким же сбоем, пожалуйста, ответьте в комментариях, если вы используете какую-либо из этих зависимостей/версий. Возможно, мы сможем выделить проблемную зависимость.
A

AlexVPerl

5 лет назад

Ответов: 6

Android Room: вставка объектов отношений с помощью Room

Я добавил связь "один ко многим" в Room, используя Relation. Я сослался на этот пост, чтобы написать следующий код для отношения в комнате.В сообщении рассказывается, как считывать значения из базы данных, но сохранение объектов в базе данных привело к тому, что userId было пустым, что означает отсутствие связи между двумя таблицами.Я не уверен, как лучше всего вставить пользователя и список домашних животных в базу данных, имея userId*100009 * значение.1) Объект пользователя:@Entity public class User { @PrimaryKey public int id; // User id } 2) Домашнее животное:@Entity public class Pet { @PrimaryKey public int id; // Pet id public int userId; // User id public String name; } 3) UserWithPets POJO:// Note: No annotation required at this class definition. public class UserWithPets { @Embedded public User user; @Relation(parentColumn = "id", entityColumn = "userId", entity = Pet.class) public List pets; } Теперь для извлечения записей из БД мы используем следующее DAO:@Dao public interface UserDao { @Insert fun insertUser(user: User) @Query("SELECT * FROM User") public List loadUsersWithPets(); } РЕДАКТИРОВАТЬЯ создал эту проблему https://issuetracker.google.com/issues/62848977 в системе отслеживания проблем. Надеюсь, они что-нибудь с этим сделают.
A

Akshay Chordiya

5 лет назад

Ответов: 6

Android-студия 3.6.1 | Ошибка: «Этот проект использует зависимости AndroidX»

Я обновил свою Android Studio и targetSdkVersion (build.gradle) до версии 29. Я перешел на AndroidX. Теперь сборка Gradle дает мне эти 2 ошибки. В этом проекте используются зависимости AndroidX, но свойство android.useAndroidX не включено. Установите для этого свойства значение true в файле gradle.properties и повторите попытку. Обнаружены следующие зависимости AndroidX: androidx.versionedparcelable:versionedparcelable:1.0.0, androidx.fragment:fragment:1.0.0, androidx.slidingpanelayout:slidingpanelayout:1.0.0, androidx.core:core:1.0.0, androidx.customview:customview:1.0.0, androidx.swiperefreshlayout:swiperefreshlayout:1.0.0, androidx.interpolator:interpolator:1.0.0, androidx.loader:loader:1.0.0, androidx.drawerlayout:drawerlayout:1.0.0, androidx.viewpager:viewpager:1.0.0, androidx.collection:коллекция:1.0.0, androidx.localbroadcastmanager:localbroadcastmanager:1.0.0, androidx.lifecycle:lifecycle-common:2.0.0, androidx.arch.core:core- общие: 2.0.0, androidx.annotation: аннотация: 1.1.0, androidx.lifecycle: lifecycle-livedata: 2.0.0, androidx.legacy: legacy-support-core-ui: 1.0.0, androidx.lifecycle: lifecycle- viewmodel: 2.0.0, androidx.lifecycle: lifecycle-livedata-core: 2.0.0, androidx.arch.core: core-runtime: 2.0.0, androidx.legacy: legacy-support-core-utils: 1.0.0, androidx.documentfile:documentfile:1.0.0 , androidx.cursoradapter:cursoradapter:1.0.0, androidx.lifecycle:lifecycle-runtime:2.0.0, androidx.coordinatorlayout:coordinatorlayout:1.0.0, androidx.asynclayoutinflater:asynclayoutinflater:1.0.0, androidx.print:print:1.0 .0 Мой код: MainActivity.javapackage it.manuel.myapp; import android.Manifest; import android.app.Activity; import android.app.AlertDialog; import android.app.DownloadManager; import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager; import android.content.DialogInterface; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Build; import android.support.v4.app.ActivityCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.webkit.DownloadListener; import android.webkit.URLUtil; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.Task; import com.google.firebase.iid.FirebaseInstanceId; import com.google.firebase.iid.InstanceIdResult; import com.google.firebase.messaging.FirebaseMessaging; public class MainActivity extends AppCompatActivity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = (WebView) findViewById(R.id.webview); webView.setWebViewClient(new WebViewClient()); webView.loadUrl("http://google.com/"); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); } @Override public void onBackPressed() { if (webView.canGoBack()){ webView.goBack(); } else { super.onBackPressed(); } } } сборка.градель// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.6.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files classpath 'com.google.gms:google-services:4.2.0' } } allprojects { repositories { google() jcenter() } } task clean(type: Delete) { delete rootProject.buildDir } build.gradle(:приложение)apply plugin: 'com.android.application' android { compileSdkVersion 29 defaultConfig { applicationId "it.manuel.myapp" minSdkVersion 29 targetSdkVersion 29 versionCode 2 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } productFlavors { } compileOptions { sourceCompatibility = 1.8 targetCompatibility = 1.8 } buildToolsVersion = '28.0.3' } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support.constraint:constraint-layout:1.1.3' implementation 'com.google.firebase:firebase-core:17.2.3' implementation 'com.google.firebase:firebase-messaging:20.1.1' testImplementation 'junit:junit:4.13' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' } apply plugin: 'com.google.gms.google-services' AndroidManifest.xml Я не понимаю, почему это больше не работает.
S

Sklero Mc

2 года назад

Ответов: 1

Кнопка Android вызвала setOnTouchListener, но не переопределяет PerformClick

Когда я пытаюсь добавить onTouchListner() к кнопке, я получаю Кнопка имеет вызов setOnTouchListener, но не переопределяет выполнитьНажмите предупреждение. Кто-нибудь знает, как это исправить?btnleftclick.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { return false; } }); Ошибка: В пользовательском представлении вызывается метод setOnTouchListener, но он не переопределяется PerformClick Если представление переопределяет onTouchEvent или использует OnTouchListener также не реализует PerformClick и не вызывает его, когда обнаружены щелчки, представление может не обрабатывать действия доступности правильно. Логика обработки кликов в идеале должна быть размещена в View#performClick, поскольку некоторые службы специальных возможностей вызывают PerformClick когда должно произойти действие клика.
k

kas

4 года назад

Ответов: 5

Результат подписки не используется

Сегодня я обновился до Android Studio 3.1, который, похоже, добавил еще несколько проверок на ворсинки. Одна из этих проверок предназначена для одноразовых вызовов RxJava2 subscribe(), которые не хранятся в переменной. Например, получение списка всех игроков из моей базы данных комнаты:Single.just(db) .subscribeOn(Schedulers.io()) .subscribe(db -> db.playerDao().getAll()); В результате появится большой желтый блок и всплывающая подсказка: Результат подписаться не используется Как лучше всего использовать однократные вызовы Rx? Должен ли я сохранить Disposable и dispose() по завершении? Или мне просто @SuppressLint и двигаться дальше?Похоже, это влияет только на RxJava2 (io.reactivex), RxJava (rx) не имеет этого ворса.
M

Michael Dodd

4 года назад

Ответов: 8

Android Studio - не удалось уведомить об ошибке прослушивателя оценки проекта

Ниже приведен код build.gradle в Android Studioapply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.sg.blahblah" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } lintOptions { checkReleaseBuilds true abortOnError false xmlReport true htmlReport true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' lintOptions { disable 'MissingTranslation' } } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.1' compile 'com.android.support:support-v4:23.1.1' compile 'com.android.support:cardview-v7:23.1.1' compile 'com.google.android.apps.dashclock:dashclock-api:+' compile 'com.roughike:bottom-bar:1.4.0.1' compile 'com.diogobernardino:williamchart:2.2' } Я получаю следующую ошибку: Ошибка: возникла проблема при настройке проекта ':app'. Не удалось уведомить слушателя оценки проекта. com.android.build.gradle.tasks.factory.AndroidJavaCompile.setDependencyCacheDir(Ljava/io/File;)V Кто-нибудь может помочь?Ниже приведен снимок экрана Instant Run.
u

userash

5 лет назад

Ответов: 31

Запуск "cordova build android" - невозможно найти атрибут android:fontVariationSettings и android:ttcIndex

Когда я запускаю cordova build android --buildConfig xxxx --release, Я получаю следующую ошибку:ERROR: In FontFamilyFont, unable to find attribute android:fontVariationSettings ERROR: In FontFamilyFont, unable to find attribute android:ttcIndex Странно то, что я использую две машины с macOS для компиляции, и я получаю эту ошибку только на одной из них для одного и того же кода.Вот вывод ./gradlew cdvPrintProps Я получаю на двух машинах::cdvPrintProps cdvCompileSdkVersion=26 cdvBuildToolsVersion=27.0.3 cdvVersionCode=null cdvMinSdkVersion=21 cdvBuildMultipleApks=true cdvReleaseSigningPropertiesFile=release-signing.properties cdvDebugSigningPropertiesFile=null cdvBuildArch=null computedVersionCode=152045989 computedArmv7VersionCode=1520459892 computedX86VersionCode=1520459894 Ниже приведен список используемых плагинов:$ cordova plugins list cordova-custom-config 5.0.2 "cordova-custom-config" cordova-fabric-plugin 1.1.10 "cordova-fabric-plugin" cordova-open-native-settings 1.5.0 "Native settings" cordova-plugin-app-event 1.2.1 "Application Events" cordova-plugin-app-version 0.1.9 "AppVersion" cordova-plugin-camera 2.4.1 "Camera" cordova-plugin-compat 1.2.0 "Compat" cordova-plugin-console 1.1.0 "Console" cordova-plugin-crosswalk-webview 2.4.0 "Crosswalk WebView Engine" cordova-plugin-datepicker 0.9.2 "DatePicker" cordova-plugin-device 2.0.1 "Device" cordova-plugin-email 1.2.7 "EmailComposer" cordova-plugin-file 4.3.3 "File" cordova-plugin-file-transfer 1.6.3 "File Transfer" cordova-plugin-inappbrowser 1.7.2 "InAppBrowser" cordova-plugin-network-information 1.3.4 "Network Information" cordova-plugin-secure-storage 2.6.8 "SecureStorage" cordova-plugin-splashscreen 4.1.0 "Splashscreen" cordova-plugin-statusbar 2.4.1 "StatusBar" cordova-plugin-whitelist 1.3.3 "Whitelist" cordova.plugins.diagnostic 3.9.2 "Diagnostic" de.appplant.cordova.plugin.local-notification 0.8.5 "LocalNotification" ionic-plugin-keyboard 2.2.1 "Keyboard" Как решить эту проблему?
S

Stéphane Padovani

4 года назад

Ответов: 26

Как использовать привязку данных и Kotlin в Android Studio 3.0.0

Я только начал использовать Android Studio 3.0.0, но каждый раз, когда я пытаюсь собрать свой проект, я получаю эту ошибку:Error:Circular dependency between the following tasks: :app:compileDebugKotlin +--- :app:dataBindingExportBuildInfoDebug | \--- :app:compileDebugKotlin (*) \--- :app:kaptDebugKotlin \--- :app:dataBindingExportBuildInfoDebug (*) (*) - details omitted (listed previously) Я использую kapt "com.android.databinding:compiler:2.2.0" До того, как я использовал androidProcessor "com.android.databinding:compiler:2.2.0" И все работало нормально... Что я делаю не так??Спасибо!
L

Leandro Borges Ferreira

5 лет назад

Ответов: 4

обновление сервисов Google Play в эмуляторе

Я ответил на множество подобных вопросов в Google Play, я использую Android 4.2.2 API 17.Моему приложению требуются службы Google Play 8.1. Оно компилируется нормально, и при запуске на эмуляторе отображается сообщение «Вам необходимо обновить службы Google Play», При обновлении ничего не происходит, Как обновить сервисы Google Play, не загружая последнюю версию API?
J

Johnny

6 лет назад

Ответов: 12

Почему существует отдельный подкласс MutableLiveData для LiveData?

Похоже, MutableLiveData отличается от LiveData только тем, что делает методы setValue() и postValue() общедоступными, тогда как вLiveData они защищены.Каковы некоторые причины для создания отдельного класса для этого изменения, а не просто определения этих методов как общедоступных в самом LiveData?Вообще говоря, является ли такая форма наследования (единственным изменением является повышение видимости определенных методов) общеизвестной практикой и в каких сценариях она может быть полезна (при условии, что у нас есть доступ ко всему коду)?
A

Alexander Kulyakhtin

4 года назад

Ответов: 3

Разница между setValue() и postValue() в MutableLiveData

Есть два способа изменить значение MutableLiveData. Но в чем разница между setValue() и postValue() в MutableLiveData.Я не смог найти аналогичную документацию.Вот класс MutableLiveData Android.package android.arch.lifecycle; /** * {@link LiveData} which publicly exposes {@link #setValue(T)} and {@link #postValue(T)} method. * * @param The type of data hold by this instance */ @SuppressWarnings("WeakerAccess") public class MutableLiveData extends LiveData { @Override public void postValue(T value) { super.postValue(value); } @Override public void setValue(T value) { super.setValue(value); } }
K

Khemraj Sharma

4 года назад

Ответов: 8

Значок уведомления с новой системой обмена сообщениями Firebase Cloud

Вчера Google представила на Google I/O новую систему уведомлений, основанную на новой Firebase. Я попробовал этот новый FCM (Firebase Cloud Messaging) с примером на Github.Значок уведомления всегда ic_launcher, несмотря на то, что я объявил конкретную возможность рисованияПочему? Здесь ниже официальный код для обработки сообщенияpublic class AppFirebaseMessagingService extends FirebaseMessagingService { /** * Called when message is received. * * @param remoteMessage Object representing the message received from Firebase Cloud Messaging. */ // [START receive_message] @Override public void onMessageReceived(RemoteMessage remoteMessage) { // If the application is in the foreground handle both data and notification messages here. // Also if you intend on generating your own notifications as a result of a received FCM // message, here is where that should be initiated. See sendNotification method below. sendNotification(remoteMessage); } // [END receive_message] /** * Create and show a simple notification containing the received FCM message. * * @param remoteMessage FCM RemoteMessage received. */ private void sendNotification(RemoteMessage remoteMessage) { Intent intent = new Intent(this, MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent, PendingIntent.FLAG_ONE_SHOT); Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); // this is a my insertion looking for a solution int icon = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ? R.drawable.myicon: R.mipmap.myicon; NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) .setSmallIcon(icon) .setContentTitle(remoteMessage.getFrom()) .setContentText(remoteMessage.getNotification().getBody()) .setAutoCancel(true) .setSound(defaultSoundUri) .setContentIntent(pendingIntent); NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.notify(0 /* ID of notification */, notificationBuilder.build()); } }
m

marco

6 лет назад

Ответов: 10

java.lang.NoClassDefFoundError: android/graphics/drawable/Icon

Пока я получил эту ошибку только для одного пользователя, который использует рутированный телефон (SM-G900R7 Android 4.4.2). Ошибка такая:Fatal Exception: java.lang.NoClassDefFoundError: android/graphics/drawable/Icon at java.lang.Class.getDeclaredMethods(Class.java) at java.lang.Class.getDeclaredMethods(Class.java:656) at android.view.ViewDebug.getExportedPropertyMethods(ViewDebug.java:960) at android.view.ViewDebug.exportMethods(ViewDebug.java:1047) at android.view.ViewDebug.dumpViewProperties(ViewDebug.java:997) at android.view.ViewDebug.dumpViewProperties(ViewDebug.java:983) at android.view.ViewDebug.dumpView(ViewDebug.java:900) at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:870) at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867) at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867) at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867) at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867) at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867) at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867) at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867) at android.view.ViewDebug.dump(ViewDebug.java:793) at android.view.ViewDebug.dispatchCommand(ViewDebug.java:416) at android.view.ViewRootImpl$W.executeCommand(ViewRootImpl.java:6258) at android.view.IWindow$Stub.onTransact(IWindow.java:65) at android.os.Binder.execTransact(Binder.java:404) at dalvik.system.NativeStart.run(NativeStart.java) Я никогда не использую android.graphics.drawable.Icon в своем коде, все варианты использования взяты из android.support.v4.graphics.drawable.IconCompat, и я также никогда не использую этот класс в своем коде. .Кстати, моя библиотека поддержки — версия 26.0.0, моя minSdkVersion — 15, targetSdkVersion — 26.Спасибо
c

cn123h

4 года назад

Ответов: 4

Ошибка: (9, 5) ошибка: ресурс android: attr/dialogCornerRadius не найден

Итак, я установил студию Android 3.0.1, и как только она открылась, gradle построила и показала следующие ошибки. Я пытался добавить зависимости, такие как дизайн и поддержка, но тщетно. Может ли кто-нибудь помочь мне? Заранее спасибо. Показывает, что некоторые атрибуты, такие как dialogCornerRadius и fontVariation Settings, не найдены.
D

Dipti Belurgikar

4 года назад

Ответов: 17

В чем разница между методами map() и switchMap()?

В чем разница между этими двумя методами класса LiveData? Официальный документ и учебник довольно расплывчаты по этому поводу. В методе map() первый параметр называется source, а в методе switchMap() он называется trigger. Что за этим стоит?
I

Igor Bubelov

4 года назад

Ответов: 13

Как отправить уведомление Firebase на все устройства через CURL?

Я пытаюсь отправить уведомление всем пользователям приложения (на Android), по сути, дублируя то, что происходит, когда уведомление отправляется через консоль администратора Firebase. Вот команда CURL, с которой я начинаю:curl --insecure --header "Авторизация: key=AIzaSyBidmyauthkeyisfineL-6NcJxj-1JUvEM" --header "Content-Type:application/json" -d "{\"notification\":{\"title\": \"заголовок-заметки\",\"тело\":\"тело-заметки\"}}" https://fcm.googleapis.com/fcm/sendВот этот JSON, разобранный, чтобы вам было проще:{ "notification":{ "title":"note-Title", "body":"note-Body" } } В ответе всего два символа:доВот оно, слово "до". (Заголовки сообщают о 400). Я подозреваю, что это связано с отсутствием «кому» в моем JSON. Что можно было бы даже поставить для "к"? У меня темы не определены, и устройства ни для чего не регистрировались. Тем не менее, они по-прежнему могут получать уведомления из панели администратора Firebase.Я хочу попробовать пакет JSON «только данные» из-за удивительного ограничения обработки уведомлений Firebase, согласно которому, если ваше приложение находится на переднем плане, уведомление обрабатывается ВАШИМ обработчиком, но если ваше приложение находится в фоновом режиме. , он ВНУТРЕННЕ обрабатывается службой Firebase и никогда не передается вашему обработчику уведомлений. ЯВНО это можно обойти, если вы отправите запрос на уведомление через API, но ТОЛЬКО, если вы сделаете это только с данными. (Что затем нарушает возможность обработки iOS и Android с одним и тем же сообщением.) Замена «уведомления» на «данные» в любом из моих JSON не имеет никакого эффекта.Хорошо, тогда я попытался найти решение здесь: Firebase Java Server для отправки push-уведомлений на все устройства что, как мне кажется, говорит: «Хорошо, хотя уведомления для всех возможны через консоль администратора… на самом деле это невозможно через API». Обходной путь заключается в том, чтобы каждый клиент подписался на тему, а затем отправил уведомление в эту тему. Итак, сначала код в onCreate:FirebaseMessaging.getInstance().subscribeToTopic("allDevices"); затем новый JSON я отправляю:{ "notification":{ "title":"note-Title", "body":"note-Body" }, "to":"allDevices" } По крайней мере, теперь я получаю реальный ответ от сервера. Ответ JSON:{ "multicast_id":463numbersnumbers42000, "success":0, "failure":1, "canonical_ids":0, "results": [ { "error":"InvalidRegistration" } ] } И это идет с HTTP-кодом 200. Хорошо... согласно https://firebase.google.com/docs/cloud-messaging/http-server-ref код 200 с «InvalidRegistration» означает проблему с токеном регистрации. Может быть? Потому что эта часть документации предназначена для сервера обмена сообщениями. Сервер уведомлений тот же? Не понятно. Я вижу в другом месте, что тема может занять несколько часов, прежде чем она станет активной. Похоже, что это сделало бы его бесполезным для создания новых чатов, так что это тоже кажется неправильным.Я был очень взволнован, когда смог написать с нуля приложение, которое получало уведомления всего за несколько часов, хотя я никогда раньше не использовал Firebase. Кажется, что ему предстоит пройти долгий путь, прежде чем он достигнет уровня, скажем, документации Stripe.com.Итог: кто-нибудь знает, какой JSON предоставить, чтобы отправить сообщение на все устройства, на которых запущено приложение, чтобы отразить функциональность консоли администратора?
A

Anders8

6 лет назад

Ответов: 10

Запуск Node.Js на Android

Итак, я знаю, что об этом много раз спрашивали. Если быть точным, например, в этих вопросах: Запустить сервер NodeJs на Android Как запустить мой проект node.js на Android? и NodeJS на IOS/Android Каждый представленный вариант имеет проблему: Я хочу запустить его на своем обычном устройстве, поэтому я хотел бы избежать установки другой ОС на свое Устройство Работа над JXCore была остановлена ​​в прошлом месяце и (возможно, в результате) я не смог его скомпилировать (см. Не могу установить jxcore-cordova) Порт NodeJs для Android Anode над которым не работали с 2014 года и в любом случае не поддерживали его тогда Второй ответ во второй ветке, на которую я ссылался, упоминал, что сейчас есть официальный дистрибутив узлов для Android, но, кроме ссылки на Browse-Website последнего дистрибутива, я не смог найти никакой информации о том, как его использовать Я также видел это, но похоже, что устройство должно быть подключено к ПК (или аналогичному) для запуска команд оболочки adb, в то время как я хотел бы сделать его отдельным приложением По прошествии времени, прошедшего с тех пор, как были опубликованы эти вопросы, и JXCore в качестве «лучшего варианта» кажется непригодным для использования: Есть ли способ запустить приложение node.js (в моем случае это сервер) на устройстве Android?если вам интересно, зачем мне это: я сделал веб-приложение с сервером Node.Js, и теперь мне нужна версия, которую вы можете запускать локально со своего телефона, не требуя подключения к Интернету. Это означает, что сервер должен работать на телефоне Android.
M

MariusR

6 лет назад

Ответов: 6

Ушел ли графический интерфейс для менеджера Android SDK?

Я редко делаю что-то для Android, поэтому немного запутался. Раньше было два типа установки — Android Studio и просто Android SDK. У меня есть IDEA, поэтому Studio мне не нужна. Обычно я загружаю SDK с инструментом пользовательского интерфейса для загрузки его компонентов.Я только что получил https://dl.google.com/android/repository/tools_r25.2.3-linux.zip и не вижу в нем UI SDK Manager. Существует сценарий оболочки bin/sdkmanager. Но для меня это неудобно, потому что просмотр вывода --list, копирование имен пакетов и запуск sdkmanager заняло бы слишком много времени.Как теперь это быстро установить?ПС. У меня Ubuntu 16.10, если это имеет значение.ПС2. Я только что попробовал sdkmanager "platforms;android-25" согласно documentation, но ничего не вышло после того, как я согласился с условиями. Где он установил файлы SDK? Он хоть установил? Удивительно.
e

expert

5 лет назад

Ответов: 11

2022 WebDevInsider