一个奇怪的问题
Tofloor
poster avatar
disburden
deepin
2020-09-03 23:56
Author
我的开发工具主要是用android studio,商店里的版本比较旧(3.4),于是我去官网下了一个最新的4.1 rc2版本.
下载后解压发现是免安装的,直接运行bin目录下studio.sh就可以了,文档里也是这么说的

  2. To start the application, open a console, cd into "{installation home}/bin" and type:

       ./studio.sh

     This will initialize various configuration files in the configuration directory:
     ~/.config/Google/AndroidStudio4.1.

尝试运行了一下,没毛病.
于是为了方便以后的启动,我添加了一个.desktop文件放在启动器目录下,内容如下

[Desktop Entry]
Encoding=UTF-8
Type=Application
Comment=AndriodStudio
Name=AndriodStudio
Icon=/home/disburden/install/android-studio/bin/studio.png
Exec=/home/disburden/install/android-studio/bin/studio.sh
Categories=Application;

点开启动,可以正常打开as,但是出现了一个奇怪的问题,就是能识别到我连接到电脑上的手机,但是不能作为调试的设备.
如果是通过命令行运行studio.sh的方式就没问题.
正常通过studio.sh方式启动后,顶部调试设备如下图:

最左边可以选择我的手机作为运行的设备

但是如果是从启动器启动的话,如下:

在最右边是能够识别到我的手机的,但是左边作为运行设备下拉列表里只有"nothing here",不能选择我的手机

目前我觉得嫌疑比较大的应该是我那个.desktop文件的写法可能有点问题,想请教一下大家
=================

电脑配置:
cpu:e3 1230 v2
显卡:七彩虹 1660 supper
主板:华擎h77m-itx
deepin版本:V20 社区版



Reply Favorite View the author
All Replies
avatar
花心胡萝卜
deepin
2020-09-04 00:54
#1
盲猜是工作目录的问题...建议看看studio.sh里有没有相对目录的相关东西, 然后我记得idea可以从菜单里直接新建desktop到桌面, AS不是这货改的么, 试试有木有
Reply View the author
avatar
disburden
deepin
2020-09-04 03:07
#2
https://bbs.deepin.org/post/201273
盲猜是工作目录的问题...建议看看studio.sh里有没有相对目录的相关东西, 然后我记得idea可以从菜单里直接新 ...

目测了一下,貌似没有发送到桌面的菜单
shell脚本实在不懂,先贴出来,不知道有没有熟悉的朋友帮忙研究一下
  1. #!/bin/sh
  2. #
  3. # ---------------------------------------------------------------------
  4. # Android Studio startup script.
  5. # ---------------------------------------------------------------------
  6. #

  7. message()
  8. {
  9.   TITLE="Cannot start Android Studio"
  10.   if [ -n "`which zenity`" ]; then
  11.     zenity --error --title="$TITLE" --text="$1"
  12.   elif [ -n "`which kdialog`" ]; then
  13.     kdialog --error "$1" --title "$TITLE"
  14.   elif [ -n "`which xmessage`" ]; then
  15.     xmessage -center "ERROR: $TITLE: $1"
  16.   elif [ -n "`which notify-send`" ]; then
  17.     notify-send "ERROR: $TITLE: $1"
  18.   else
  19.     printf "ERROR: $TITLE\n$1\n"
  20.   fi
  21. }

  22. UNAME=`which uname`
  23. GREP=`which egrep`
  24. GREP_OPTIONS=""
  25. CUT=`which cut`
  26. READLINK=`which readlink`
  27. XARGS=`which xargs`
  28. DIRNAME=`which dirname`
  29. MKTEMP=`which mktemp`
  30. RM=`which rm`
  31. CAT=`which cat`
  32. SED=`which sed`

  33. if [ -z "$UNAME" -o -z "$GREP" -o -z "$CUT" -o -z "$MKTEMP" -o -z "$RM" -o -z "$CAT" -o -z "$SED" ]; then
  34.   message "Required tools are missing - check beginning of \"$0\" file for details."
  35.   exit 1
  36. fi

  37. OS_TYPE=`"$UNAME" -s`

  38. # ---------------------------------------------------------------------
  39. # Ensure IDE_HOME points to the directory where the IDE is installed.
  40. # ---------------------------------------------------------------------
  41. SCRIPT_LOCATION=$0
  42. if [ -x "$READLINK" ]; then
  43.   while [ -L "$SCRIPT_LOCATION" ]; do
  44.     SCRIPT_LOCATION=`"$READLINK" -e "$SCRIPT_LOCATION"`
  45.   done
  46. fi

  47. cd "`dirname "$SCRIPT_LOCATION"`"
  48. IDE_BIN_HOME=`pwd`
  49. IDE_HOME=`dirname "$IDE_BIN_HOME"`
  50. cd "$OLDPWD"

  51. # ---------------------------------------------------------------------
  52. # Locate a JDK installation directory which will be used to run the IDE.
  53. # Try (in order): STUDIO_JDK, studio.jdk, ./jre64, JDK_HOME, JAVA_HOME, "java" in PATH.
  54. # ---------------------------------------------------------------------
  55. if [ -n "$STUDIO_JDK" -a -x "$STUDIO_JDK/bin/java" ]; then
  56.   JDK="$STUDIO_JDK"
  57. fi

  58. if [ -z "$JDK" -a -s "${XDG_CONFIG_HOME:-$HOME/.config}/Google/AndroidStudio4.1/studio.jdk" ]; then
  59.   USER_JRE=`"$CAT" $HOME/.AndroidStudio4.1/config/studio.jdk`
  60.   if [ ! -d "$USER_JRE" ]; then
  61.     USER_JRE="$IDE_HOME/$USER_JRE"
  62.   fi
  63.   if [ -x "$USER_JRE/bin/java" ]; then
  64.     JDK="$USER_JRE"
  65.   fi
  66. fi

  67. if [ -z "$JDK" -a "$OS_TYPE" = "Linux" ] ; then
  68.   BUNDLED_JRE="$IDE_HOME/jre64"
  69.   if [ ! -d "$BUNDLED_JRE" ]; then
  70.     BUNDLED_JRE="$IDE_HOME/jre"
  71.   fi
  72.   if [ -x "$BUNDLED_JRE/bin/java" ] && "$BUNDLED_JRE/bin/java" -version > /dev/null 2>&1 ; then
  73.     JDK="$BUNDLED_JRE"
  74.   fi
  75. fi

  76. if [ -z "$JDK" -a -n "$JDK_HOME" -a -x "$JDK_HOME/bin/java" ]; then
  77.   JDK="$JDK_HOME"
  78. fi

  79. if [ -z "$JDK" -a  -n "$JAVA_HOME" -a -x "$JAVA_HOME/bin/java" ]; then
  80.   JDK="$JAVA_HOME"
  81. fi

  82. if [ -z "$JDK" ]; then
  83.   JDK_PATH=`which java`

  84.   if [ -n "$JDK_PATH" ]; then
  85.     if [ "$OS_TYPE" = "FreeBSD" -o "$OS_TYPE" = "MidnightBSD" ]; then
  86.       JAVA_LOCATION=`JAVAVM_DRYRUN=yes java | "$GREP" '^JAVA_HOME' | "$CUT" -c11-`
  87.       if [ -x "$JAVA_LOCATION/bin/java" ]; then
  88.         JDK="$JAVA_LOCATION"
  89.       fi
  90.     elif [ "$OS_TYPE" = "SunOS" ]; then
  91.       JAVA_LOCATION="/usr/jdk/latest"
  92.       if [ -x "$JAVA_LOCATION/bin/java" ]; then
  93.         JDK="$JAVA_LOCATION"
  94.       fi
  95.     elif [ "$OS_TYPE" = "Darwin" ]; then
  96.       JAVA_LOCATION=`/usr/libexec/java_home`
  97.       if [ -x "$JAVA_LOCATION/bin/java" ]; then
  98.         JDK="$JAVA_LOCATION"
  99.       fi
  100.     fi
  101.   fi

  102.   if [ -z "$JDK" -a -x "$READLINK" -a -x "$XARGS" -a -x "$DIRNAME" ]; then
  103.     JAVA_LOCATION=`"$READLINK" -f "$JDK_PATH"`
  104.     case "$JAVA_LOCATION" in
  105.       */jre/bin/java)
  106.         JAVA_LOCATION=`echo "$JAVA_LOCATION" | "$XARGS" "$DIRNAME" | "$XARGS" "$DIRNAME" | "$XARGS" "$DIRNAME"`
  107.         if [ ! -d "$JAVA_LOCATION/bin" ]; then
  108.           JAVA_LOCATION="$JAVA_LOCATION/jre"
  109.         fi
  110.         ;;
  111.       *)
  112.         JAVA_LOCATION=`echo "$JAVA_LOCATION" | "$XARGS" "$DIRNAME" | "$XARGS" "$DIRNAME"`
  113.         ;;
  114.     esac
  115.     if [ -x "$JAVA_LOCATION/bin/java" ]; then
  116.       JDK="$JAVA_LOCATION"
  117.     fi
  118.   fi
  119. fi

  120. JAVA_BIN="$JDK/bin/java"
  121. if [ -z "$JDK" -o ! -x "$JAVA_BIN" ]; then
  122.   message "No JDK found. Please validate either STUDIO_JDK, JDK_HOME or JAVA_HOME environment variable points to valid JDK installation."
  123.   exit 1
  124. fi

  125. VERSION_LOG=`"$MKTEMP" -t java.version.log.XXXXXX`
  126. JAVA_TOOL_OPTIONS= "$JAVA_BIN" -version 2> "$VERSION_LOG"
  127. "$GREP" "64-Bit|x86_64|amd64" "$VERSION_LOG" > /dev/null
  128. BITS=$?
  129. "$RM" -f "$VERSION_LOG"
  130. test ${BITS} -eq 0 && BITS="64" || BITS=""

  131. # ---------------------------------------------------------------------
  132. # Collect JVM options and IDE properties.
  133. # ---------------------------------------------------------------------
  134. if [ -n "$STUDIO_PROPERTIES" ]; then
  135.   IDE_PROPERTIES_PROPERTY="-Didea.properties.file=$STUDIO_PROPERTIES"
  136. fi

  137. # Android Studio: we allow multiple vmoptions files to be included when determining JVM flags.
  138. VM_OPTIONS=""
  139. for VM_OPTIONS_FILE in \
  140.     $IDE_BIN_HOME/studio$BITS.vmoptions \
  141.     ${XDG_CONFIG_HOME:-$HOME/.config}/Google/AndroidStudio4.1/studio$BITS.vmoptions \
  142.     $IDE_HOME.vmoptions \
  143.     $STUDIO_VM_OPTIONS; do
  144.   if [ -r "$VM_OPTIONS_FILE" ]; then
  145.     VM_OPTIONS_TO_ADD=`"$CAT" "$VM_OPTIONS_FILE" | "$GREP" -v "^#.*"`
  146.     VM_OPTIONS="${VM_OPTIONS:-}${VM_OPTIONS:+        }${VM_OPTIONS_TO_ADD}"  # tab-delimited; see IFS below
  147.     VM_OPTIONS_FILES="${VM_OPTIONS_FILES:-}${VM_OPTIONS_FILES:+,}${VM_OPTIONS_FILE}"
  148.   fi
  149. done

  150. CLASSPATH="$IDE_HOME/lib/bootstrap.jar"
  151. CLASSPATH="$CLASSPATH:$IDE_HOME/lib/extensions.jar"
  152. CLASSPATH="$CLASSPATH:$IDE_HOME/lib/util.jar"
  153. CLASSPATH="$CLASSPATH:$IDE_HOME/lib/jdom.jar"
  154. CLASSPATH="$CLASSPATH:$IDE_HOME/lib/log4j.jar"
  155. CLASSPATH="$CLASSPATH:$IDE_HOME/lib/trove4j.jar"
  156. CLASSPATH="$CLASSPATH:$IDE_HOME/lib/jna.jar"
  157. CLASSPATH="$CLASSPATH:$JDK/lib/tools.jar"
  158. if [ -n "$STUDIO_CLASSPATH" ]; then
  159.   CLASSPATH="$CLASSPATH:$STUDIO_CLASSPATH"
  160. fi

  161. # ---------------------------------------------------------------------
  162. # Run the IDE.
  163. # ---------------------------------------------------------------------
  164. IFS="$(printf '\n\t')"
  165. "$JAVA_BIN" \
  166.   -classpath "$CLASSPATH" \
  167.   ${VM_OPTIONS} \
  168.   "-XX:ErrorFile=$HOME/java_error_in_STUDIO_%p.log" \
  169.   "-XX:HeapDumpPath=$HOME/java_error_in_STUDIO.hprof" \
  170.   -Didea.paths.selector=AndroidStudio4.1 \
  171.   "-Djb.vmOptionsFile=$VM_OPTIONS_FILES" \
  172.   ${IDE_PROPERTIES_PROPERTY} \
  173.   -Didea.platform.prefix=AndroidStudio -Didea.jre.check=true \
  174.   com.intellij.idea.Main \
  175.   "$@"
Copy the Code
Reply View the author
avatar
gotit
deepin
2020-09-04 03:43
#3
要添加sdk环境变量和adb的usb驱动
Reply View the author
avatar
gotit
deepin
2020-09-04 03:45
#4
https://blog.csdn.net/zhangqunshuai/article/details/83176517
Reply View the author