gpt4 book ai didi

java - 将设备从 Android 8 更新到 9 后无法从 Android Studio 启动应用

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:10:16 26 4
gpt4 key购买 nike

我删除并重新发布了我的问题,因为我认为它已解决并标记了它,但事实并非如此,我正在添加更多关于它的信息。

我正在开发一个 Android 应用程序,在将我设备的 Android 版本更新到 9 后,我无法再从 Android Studio 运行我的应用程序。

我在事件日志中看到两个不同的错误:

第一个(也是最短的):

Session 'app': Install failed. Installation failed

尝试了下一个链接中的所有内容,但没有成功:

Session 'app' error while installing APK

第二个:

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.deployer.AdbClient.install(AdbClient.java:75) at com.android.tools.deployer.ApkInstaller.install(ApkInstaller.java:32) at com.android.tools.deployer.Deployer.install(Deployer.java:76) at com.android.tools.idea.run.tasks.DeployTask.perform(DeployTask.java:79) at com.android.tools.idea.run.tasks.AbstractDeployTask.perform(AbstractDeployTask.java:109) 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 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)

My device is a Huawei P20 and I'm working with latest Android Studio 3.4.1 with Ubuntu, and app run (launch) from Android Studio stopped working after Android 8 to 9 update.

As a note I can add that build process runs OK and device is detected correctly when launching (in the first screen where you select the target device) and I can also see device as connected in logcat viewer, but when finishing building, when ready to deploy you hear the sound that the computer does when plugging / unplugging an usb device

.

有什么帮助吗?

编辑 1:

我认为这最终是一个操作系统 (Ubuntu) 问题,因为恢复了我的虚拟机的最近备份并且它工作正常,但是在更新 Android Studio 和 SDK 之后(按照建议)它再次开始失败所以它必须我想是我的设备操作系统 Android 9 和最新的 SDK 更新之间的某种结合。

在“失败”的虚拟机中,我可以在旧的 Android 4 手机和我的 4.4.3 Asus 平板电脑上运行该应用程序,而不是在我的新 Android 9 平板电脑上,这就是为什么我猜测它可能与 Android 9 相关问题。

这是我的 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}.testMe.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>

这是我的 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 JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
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 JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
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)
//def newName = output.outputFile.name //output.packageApplication.outputFile
//newName = newName.replace("app-", "$project.ext.appName-")
//newName = newName.replace("-release", "")
}
}
}
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-android'
//writingminds
api 'com.writingminds:FFmpegAndroid:0.3.2'
//JavaCV video
api group: 'org.bytedeco', name: 'javacv', version: '1.5'
//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.5.6'
api 'com.sun.mail:android-activation:1.5.6'
//apache commons lang
api 'org.apache.commons:commons-lang3:3.8.1'
//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'
}

编辑 2:

试图运行我的另一个工作应用程序,但在成功构建后和即将部署 apk 时出现此错误:

Installation failed with message 'cmd package install-create -r -t -S 11182369' returns error 'Unknown failure: Security exception: Permission Denial: runInstallCreate from pm command asks to run as user -1 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL java.lang.SecurityException: Permission Denial: runInstallCreate from pm command asks to run as user -1 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL at com.android.server.am.UserController.handleIncomingUser(UserController.java:1827) at com.android.server.am.ActivityManagerService.handleIncomingUser(ActivityManagerService.java:25069) at android.app.ActivityManager.handleIncomingUser(ActivityManager.java:4848) at com.android.server.pm.PackageManagerShellCommand.translateUserId(PackageManagerShellCommand.java:2402) at com.android.server.pm.PackageManagerShellCommand.doCreateSession(PackageManagerShellCommand.java:2408) at com.android.server.pm.PackageManagerShellCommand.runInstallCreate(PackageManagerShellCommand.java:949)

最佳答案

这是一个奇怪的问题,已经在 SO 上讨论过几次,尤其是在新更新的 Android 9 设备上。

您是否尝试过禁用然后重新启用开发者选项? (也许重新启动设备?)这似乎已经解决了一些问题。

如果这不起作用,您可能想看看这些并从那里开始 -

Android Pie - 9 (API 28) : Installing APK .... not successfully installing

Permission Denial: startActivity asks to run as user -2 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL

关于java - 将设备从 Android 8 更新到 9 后无法从 Android Studio 启动应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56847278/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com