仍然无法解决此烦人的问题。我正在开发一个Android应用程序,将操作系统更新为Android 9应用程序后,从Android Studio启动无法正常工作。
构建成功后,当AS即将部署Android Studio时,会弹出一条警报,提示下一条消息:
Installation failed because the device "huawei-sne_lx1-HYF0218911000087" disconnected.
在“事件日志”窗口中,我看到以下错误:
Broken pipe java.io.IOException: Broken pipe at
sun.nio.ch.FileDispatcherImpl.write0(Native Method) at
sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) at
sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) at
sun.nio.ch.IOUtil.write(IOUtil.java:65) at
sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471) at
com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:524) at
com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:627) at
com.android.ddmlib.SplitApkInstaller.uploadApk(SplitApkInstaller.java:133) at
com.android.ddmlib.SplitApkInstaller.install(SplitApkInstaller.java:73) at
com.android.ddmlib.Device.installPackages(Device.java:927) at
com.android.tools.idea.run.tasks.SplitApkDeployTask$SplitApkInstaller.installApp(SplitApkDeployTask.java:142) at
com.android.tools.idea.run.RetryingInstaller.install(RetryingInstaller.java:93) at
com.android.tools.idea.run.tasks.SplitApkDeployTask.perform(SplitApkDeployTask.java:106) at
com.android.tools.idea.run.LaunchTaskRunner.run(LaunchTaskRunner.java:132) at
com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:727) at
com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:164) at
com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:582) at
com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:532) at
com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:87) at
com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:151) at
com.intellij.openapi.progress.impl.CoreProgressManager$4.run(CoreProgressManager.java:403) at
com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:314) at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at
java.util.concurrent.FutureTask.run(FutureTask.java:266) at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at
java.lang.Thread.run(Thread.java:745)
我已经检查过了:
Android Pie - 9 (API 28) : Installing APK .... not successfully installing
这:
提出解决问题的方法,但是改变我的applicationId绝对不是解决方案。
奇怪的是,如果我更改appId,那么应用程序启动就很好了,但这显然不是解决方案,因为我不想(也不能)更改appId,因此我需要帮助来找到真正的解决方案。
我尝试了这些链接中的所有建议,例如重新启动设备,禁用和重新启用开发人员选项等等,但没有区别,如果更改appId,应用程序只能从Android Studio重新开始运行。
我的Android Studio和SDK是最新的,并且我正在Ubuntu下工作。
有什么想法吗?
编辑1:添加AndroidManifest.xml文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xxx.xxx"
android:versionCode="1"
android:versionName="1.0">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<application
android:name=".activities.shared.AppSettings"
android:allowBackup="true"
android:hardwareAccelerated="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:theme="@style/Theme.myTheme.TitleBar">
<service
android:name=".activities.shared.OnClearFromRecentService"
android:stopWithTask="false"
android:enabled="true"
android:exported="true">
</service>
<provider
android:name=".activities.shared.GenericFileProvider"
android:authorities="${applicationId}.xxx.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
<activity
android:name=".activities.launch.SplashActivity"
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name=".activities.main.MainActivity"
android:configChanges="orientation"
android:parentActivityName=".activities.launch.SplashActivity">
</activity>
<activity
android:name=".activities.about.AboutUsActivity"
android:parentActivityName=".activities.main.MainActivity">
</activity>
<activity
android:name=".activities.about.ChangeLogActivity"
android:parentActivityName=".activities.about.AboutUsActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.xxx.xxx.activities.about.AboutUsActivity"/>
</activity>
<activity
android:name=".activities.about.ReportProblemActivity"
android:parentActivityName=".activities.about.AboutUsActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.xxx.xxx.activities.about.AboutUsActivity"/>
</activity>
<activity
android:name=".activities.main.HowToUseActivity"
android:parentActivityName=".activities.main.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.xxx.xxx.activities.main.MainActivity"/>
</activity>
<activity
android:name=".activities.DisplayThoughtActivity"
android:parentActivityName=".activities.main.MainActivity">
</activity>
<activity
android:name=".activities.shared.SettingsActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="Settings">
</activity>
<receiver android:name=".helpers.notification.AlarmTakeTestReceiver"/>
</application>
</manifest>
编辑2:添加应用build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.2'
//versioning
//classpath 'org.moallemi.gradle.advanced-build-version:gradle-plugin:1.5.3'
}
}
//apply plugin: 'org.moallemi.advanced-build-version'
allprojects {
repositories {
jcenter()
mavenCentral()
maven { url "https://jitpack.io" }
maven { url 'https://repository-achartengine.forge.cloudbees.com/snapshot/' }
maven { url 'def androidHome = System.getenv("ANDROID_HOME")' }
maven { url "/Home/Diego/Android/Sdk/extras/android/m2repository/" }
google()
}
}
/*advancedVersioning {
nameOptions { }
codeOptions {
versionCodeType org.moallemi.gradle.internal.VersionCodeType.AUTO_INCREMENT_ONE_STEP
dependsOnTasks 'debug', 'release', 'assemble'
}
outputOptions { }
}
def appVersionName = advancedVersioning.versionName
def appVersionCode = advancedVersioning.versionCode*/
编辑3:
作为额外的信息,我正在使用另一个正在运行的应用程序;我卸载了它,并能够从Android Studio再次正常启动它,所以我想它与该应用程序特别相关,但无法弄清楚是什么。
顺便说一句,我已经清理项目无济于事。
编辑4:
要添加更多怪异的东西,如果我在较旧的Android 5设备上运行该应用,则该应用运行得很好,所以我很困惑:s
编辑4:添加build.gradle文件
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
buildToolsVersion '29.0.0'
def code
Properties versionProps = new Properties()
def versionPropsFile = file('version.properties')
if (versionPropsFile.exists())
versionProps.load(new FileInputStream(versionPropsFile))
code = (versionProps['VERSION_CODE'] ?: "0").toInteger() + 1
versionProps['VERSION_CODE'] = code.toString()
versionProps.store(versionPropsFile.newWriter(), null)
packagingOptions {
pickFirst 'META-INF/LICENSE.txt' // picks the JavaMail license file
}
defaultConfig {
applicationId 'com.xxx.xxx'
minSdkVersion 17
targetSdkVersion 28
versionCode code
versionName "1.0." + code
multiDexEnabled true
compileOptions {
sourceCompatibility java_version
targetCompatibility java_version
}
}
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
}
compileOptions {
sourceCompatibility java_version
targetCompatibility java_version
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
applicationVariants.all { variant ->
variant.outputs.all { output ->
project.ext { appName = 'xxx' }
def newName = 'xxx.apk'
outputFileName = new File("./build/", newName)
}
}
}
debug {
}
}
allprojects {
repositories {
jcenter()
mavenCentral()
def androidHome = System.getenv("ANDROID_HOME")
maven {
url "$androidHome/extras/android/m2repository/"
}
maven {
url "https://maven.java.net/content/groups/public/"
}
}
}
productFlavors {
}
}
dependencies {
//Google Guava
api 'com.google.guava:guava:28.0-jre'
//writingminds
api 'com.writingminds:FFmpegAndroid:0.3.2'
//JavaCV video
api group: 'org.bytedeco', name: 'javacv', version: '1.5.1'
//api group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '4.1-1.4.4', classifier: 'android-arm'
//api group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '4.0.1-1.4.4', classifier: 'android-arm'
//volley
api 'com.android.volley:volley:1.1.1'
//spotify
api 'com.github.kaaes:spotify-web-api-android:0.4.1'
//mail API 19
//api 'com.sun.mail:android-mail:1.6.3'
//api 'com.sun.mail:android-activation:1.6.3'
//mail API 16
api 'com.sun.mail:android-mail:1.6.3'
api 'com.sun.mail:android-activation:1.6.3'
//apache commons lang
api 'org.apache.commons:commons-lang3:3.9'
//Font Selector List Preference
api 'com.vanniktech:vntfontlistpreference:1.0.0'
//Rate my app
api 'com.github.hotchemi:android-rate:1.0.1'
//Support
api 'com.android.support:appcompat-v7:28.0.0'
api 'com.android.support:support-v4:28.0.0'
/*api 'com.android.support:support-v4:28.0.0'
api 'com.android.support:appcompat-v7:28.0.0'
api 'com.android.support:cardview-v7:28.0.0'
api 'com.android.support:recyclerview-v7:28.0.0'
api 'com.android.support:customtabs:28.0.0'
api 'com.android.support:support-annotations:28.0.0'*/
//multidex
api 'com.android.support:multidex:1.0.3'
//AlertDialog
implementation 'com.github.d-max:spots-dialog:1.1@aar'
//glide animated gifs
implementation 'com.github.bumptech.glide:glide:4.9.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
}
答案 0 :(得分:0)
如果还没有,请转到文件->项目结构,单击模块,然后单击应用程序。检查默认配置和属性选项卡,并检查包括“版本”的所有内容。确保它们与Android 9兼容。我假设您已经在手机上启用了开发人员模式和USB调试,但是您可能还是要进行检查。