Студия Android не обновляет новые версии
С ASUS ZenPad10 случается, что когда-то я запускаю приложение, но вместо этого запускается старое. Поэтому я думаю, что что-то исправил, но на самом деле я тестирую версию, которая все еще является ошибкой, теряя много времени.
С другими планшетами этого не происходит. Кроме того, мне нужно отключить ADB для запуска приложения в планшете. С Nexus 10 мне не нужно ничего делать.
В каталоге /data/app есть также все каталоги (например, "myapp/" ) вместо apks (например, "myapp.apk" ), как в Nexus 10.
Любая идея избежать проблем с обновлением?
Интересно, может ли быть причиной "Проверка приложений через USB", но я не могу отключить его на ASUS.
Я думаю, что это не обязательно, но это мой основной файл gradle:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
maven { url "http://dl.bintray.com/populov/maven" }
mavenCentral()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.+'
}
}
allprojects {
repositories {
mavenCentral()
jcenter()
maven {
url 'https://github.com/suckgamony/RapidDecoder/raw/master/repository'
}
}
}
task wrapper(type: Wrapper) {
gradleVersion = '2.5' //version required
}
И это мой файл приложения gradle:
apply plugin: 'com.android.application'
dependencies {
compile fileTree(include: '*.jar', dir: 'libs')
compile project(':Structure:StructureExam')
compile 'com.github.bmelnychuk:atv:1.2.+'
compile 'com.github.johnkil.print:print:1.3.1'
compile 'de.codecrafters.tableview:tableview:0.9.6'
}
android {
compileSdkVersion 23
buildToolsVersion '23.0.1'
signingConfigs {
release {
storeFile file("../../myfile.jks")
storePassword "mypass"
keyAlias "myalias"
keyPassword "mypass"
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for com.centervue.lib_util.errors in release builds,
// but continue the build even when com.centervue.lib_util.errors are found:
abortOnError false
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}
Ответы
Ответ 1
Похоже, у вас есть мгновенный запуск (по умолчанию).
Эта функция приводит к тому, что на устройство добавляется только измененный код на приложение. что может вызвать проблемы, с которыми вы сталкиваетесь...
Отключить:
[Настройки/предпочтения] → Сборка, выполнение, развертывание → Мгновенный запуск: снимите флажок "Включить мгновенный запуск до горячего кода замены....."
В качестве альтернативы вы можете использовать очистить и перезапустить приложение из Run (^ ⌘R)
Ответ 2
В Android Studio goto run → Edit Configurations... и в приложении и на общей вкладке проверьте, есть ли у вас Gradle -aware Make под "перед запуском". если не добавить его с плюсом.
Вы также должны убедиться, что все в вашем build.gradle правильно, особенно в defaultConfig.
Это обычные исправления проблемы, однако, странно, что проблема связана только с одним конкретным устройством. Я продолжу расследование и отредактирую этот ответ, если найду решение, но попробую это сейчас.
Ответ 3
Причина заключается в интеграции Enable ADB.
Если я забуду это, потому что я использую отладчик, он либо не нажимает правильно новое приложение, либо просто запускает старый.
Не знаю, почему. Отключение этого приведет к тому, что все будет работать нормально. Хотя это действительно боль, чтобы кодировать это. Любая идея о причине, почему это не работает на Nexus, но это делается на ASUS?