Java Android:设备升级到Android 9后,无法从Android Studio启动应用程序

Java Android:设备升级到Android 9后,无法从Android Studio启动应用程序,java,android,android-studio,launch,android-9.0-pie,Java,Android,Android Studio,Launch,Android 9.0 Pie,仍然无法解决这个恼人的问题。我正在开发一款Android应用程序,在将操作系统升级到Android 9之后,Android Studio发布的应用程序停止工作 成功构建后,当AS即将部署Android Studio时,会弹出一条警报,并显示下一条消息: Installation failed because the device "huawei-sne_lx1-HYF0218911000087" disconnected. 在事件日志窗口中,我看到以下错误: Broken pipe java.

仍然无法解决这个恼人的问题。我正在开发一款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)
我已经检查过了:

这是:

然后想出一个解决问题的方法,但这肯定不是解决方案,来改变我的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>
编辑3:

作为额外的信息,我有另一个应用程序,我正在工作,运行良好;我卸载了它,并能够从Android Studio中再次启动它,没有任何问题,所以我猜它与这个应用程序有关,但我不知道是什么

顺便说一句,我已经清理项目没有用

编辑4:

更奇怪的是,如果我在旧的安卓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'
}

若你们还并没有,进入文件->项目结构,点击模块,然后点击应用程序。选中默认配置和属性选项卡,并选中包含“版本”的任意内容。确保它们与Android 9兼容。我假设您在手机上启用了开发者模式和USB调试,但您可能还是想检查一下


您可以发布日志视图下出现的错误,也可以尝试运行adb命令查看您是否可以看到此设备Hi@war\u Hero,感谢您的回复,adb命令显示下一个:“已连接的设备列表:HYF0218911000087设备”,因此我猜它正在工作,您对“日志视图”是什么意思?你指的是LogCat窗口吗?当安装失败时,Android studio会在日志视图中显示它,你也可以发布你的清单和设备操作系统版本。你要求的是我的帖子,事件日志消息@war_Hero。我的操作系统版本是华为EMUI 9.0.1,我将使用清单文件编辑post。您是否已经在设备中安装了其他版本或相同的apk,是否可以发布应用程序构建。gradle也可以添加其他build.gradle文件吗?您好@William Li,非常感谢您的帮助。这完全是胡说八道,但按照您的指示,转到项目结构,在“源代码兼容性”和“目标兼容性”中显示了$JavaVersion.VERSION\u 1\u 8(未解析引用$JavaVersion.VERSION\u 1\u 8)文本,因此我单击了下拉列表并选择了最后一项“1.8(Java 8)”在那之后,又发生了另一件奇怪的事情,在build.gradle JavaVersion.VERSION_1_8出现在单引号和项目之间,在删除单引号(可能是Android Studio bug?)后,项目同步了……瞧,应用程序已经成功运行,但是。。。如果我转到项目结构,我会再次看到相同的参考错误,并且必须重复所有步骤才能再次启动应用程序。我开始看到隧道尽头的曙光,因为现在有一种方法可以成功地启动应用程序,但这个“java东西”是如此奇怪和令人困惑:s。。。如果每次启动应用程序时都要执行所有这些步骤,那真是太疯狂了。好吧,我想我找到了一个解决方案,这是这里最意想不到(也是最奇怪)的解决方案:还需要再测试一点,但当你为我指出正确的方向时,我会将你的答案标记为正确@William Li:)
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'
}