Android常见问题

common

Android6.0 mk编译关闭jack

LOCAL_JACK_ENABLED := disabled

git没有设置邮箱和姓名

fatal: unable to auto-detect email address (got ‘jun@jun.(none)’)

  git config --global user.email "you@example.com"git config --global user.name "Your Name"

make版本太高

方法一:修改编译文件,使之支持4.1 https://www.cnblogs.com/blowing-in-the-wind/p/5960375.html
gedit build/core/main.mk
add ifeq (0,$(shell expr $$(echo $(MAKE_VERSION) | sed "s/[^0-9\.].*//") = 4.1))
方法二: 降低make版本(编译不过) https://blog.csdn.net/victory08/article/details/51593994
下载对应版本的make ftp://ftp.gnu.org/gnu/make/
解压 tar -xvf make-3.81.tar.bz2
编译 ./configure
make
配置 export PATH=/你的make路径/make-3.81:$PATH
source /etc/profile
方法三:(下载安装)
sudo apt-get remove make
去这里下载http://packages.ubuntu.com/trusty/make
sudo dpkg -i make*.deb

linux终端不能输入中文

在用户目录下的.inputrc文件(如果没有,则新建一个)添加:
set meta-flag on
set convert-meta off
set input-meta on
set output-meta on

repo

gpg: Can’t check signature: public key not foun

出错原因是曾使用repo sync从其它库sync过代码,删掉~/.repoconfig即可
rm -rf ~/.repoconfig

Permission denied

*repo init 时提示Permission denied (publickey).fatal: Could not read from remote repository.Please make sure you have the correct access rights and the repository exists.*

用户错误,repo init,或将没有git库下.git目录下的config配置修改成当前用户邮箱

AndroidStudio

AndroidStudio终端不能输入中文

有好几种处理方法, 取有效的

1. ~/.baserc 下注释掉
#export LC_ALL=C2.studio/bin/studio.sh 第二行添加
export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
前提你的输入法是fcitx3.AS安装目录下的jre文件替换掉,用2.2.3版本的替换当前版本的(一般3.0可以解决)

Failed to load module "canberra-gtk-module

Failed to load module "canberra-gtk-module

sudo apt-get install libcanberra-gtk-module

Invoke-customs are only supported starting

Invoke-customs are only supported starting with Android O (–min-api 26)

compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8
}

Error: Program type already present

Error: Program type already present: android.support.design.widget.CoordinatorLayout$1

包有冲突
在dependencies 中去掉有冲突的包

/dev/kvm devices: permission denies

AndroidStudio 出现 grant current user access to /dev/kvm 以及/dev/kvm devices: permission denies

sudo chmod 777 /dev/kvm

Android

onStartCommand()方法中intent为null

07-26 17:58:39.928  2889  2889 E AndroidRuntime: java.lang.RuntimeException: Unable to start service com.gaei.settings.stat.BootStatService@fe5a3bb with null: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Intent.getAction()' on a null object reference
07-26 17:58:39.928  2889  2889 E AndroidRuntime:    at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3035)
07-26 17:58:39.928  2889  2889 E AndroidRuntime:    at android.app.ActivityThread.-wrap17(ActivityThread.java)
07-26 17:58:39.928  2889  2889 E AndroidRuntime:    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1445)
07-26 17:58:39.928  2889  2889 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:102)
07-26 17:58:39.928  2889  2889 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:148)
07-26 17:58:39.928  2889  2889 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:5431)
07-26 17:58:39.928  2889  2889 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
07-26 17:58:39.928  2889  2889 E AndroidRuntime:    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
07-26 17:58:39.928  2889  2889 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
07-26 17:58:39.928  2889  2889 E AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Intent.getAction()' on a null object reference
07-26 17:58:39.928  2889  2889 E AndroidRuntime:    at com.gaei.settings.stat.BootStatService.onStartCommand(BootStatService.java:45)
07-26 17:58:39.928  2889  2889 E AndroidRuntime:    at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3018)
07-26 17:58:39.928  2889  2889 E AndroidRuntime:    ... 8 more

onStartCommand返回值

onStartComand使用时,返回的是一个(int)整形。
这个整形可以有四个返回值:start_sticky、start_no_sticky、START_REDELIVER_INTENT、START_STICKY_COMPATIBILITY。
它们的含义分别是:
1):START_STICKY:如果service进程被kill掉,保留service的状态为开始状态,但不保留递送的intent对象。随后系统会尝试重新创建service,由于服务状态为开始状态,所以创建服务后一定会调用onStartCommand(Intent,int,int)方法。如果在此期间没有任何启动命令被传递到service,那么参数Intent将为null。

2):START_NOT_STICKY:“非粘性的”。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统不会自动重启该服务

3):START_REDELIVER_INTENT:重传Intent。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统会自动重启该服务,并将Intent的值传入。

4):START_STICKY_COMPATIBILITY:START_STICKY的兼容版本,但不保证服务被kill后一定能重启。

onStartComand参数flags含义

flags表示启动服务的方式:
Additional data about this start request. Currently either 0, START_FLAG_REDELIVERY, or START_FLAG_RETRY.

START_FLAG_REDELIVERY:如果你实现onStartCommand()来安排异步工作或者在另一个线程中工作, 那么你可能需要使用

START_FLAG_REDELIVERY来让系统重新发送一个intent。这样如果你的服务在处理它的时候被Kill掉, Intent不会丢失.

START_FLAG_RETRY:表示服务之前被设为START_STICKY,则会被传入这个标记。

@Override
public int onStartCommand(Intent intent, int flags, int startId)
{  //super.onStartCommand(intent, flags, startId);  return START_REDELIVER_INTENT;
}

Android4.4

Android6

lex:aidl

Lex: aidl <= frameworks/base/tools/aidl/aidl_language_l.lflex-2.5.39: loadlocale.c:130:_nl_intern_locale_data: ?? 'cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' ???make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_l.cpp] 已放弃 (core dumped)、

在bashrc中添加一句
export LC_ALL=C

“mkimage” command not found - U-Boot images will not be built

"mkimage" command not found - U-Boot images will not be builtmake[2]: *** [arch/arm/boot/uImage] Error 1make[1]: *** [uImage] Error 2make[1]: Leaving directory `/home/jun/secondDisk/project/android6.0/kernel_imx'make: *** [out/target/product/sabresd_6dq/kernel] Error 2

按照以往经验,我们需要安装依赖包:
sudo apt-get install uboot-mkimage
但却提示”现在没有可用的软件包 uboot-mkimage,但是它被其它的软件包引用了。 这可能意味着这个缺失的软件包可能已被废弃“
按照其提示,安装”u-boot-tools“即可
sudo apt-get install u-boot-tools

against global symbol

prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8//x86_64-linux/bin/ld: error: out/host/linux-x86/obj/SHARED_LIBRARIES/libart_intermediates/arch/x86_64/quick_entrypoints_x86_64.o: unsupported reloc 42 against global symbol art::Runtime::instance_.....
out/host/linux-x86/obj/SHARED_LIBRARIES/libart_intermediates/arch/x86_64/quick_entrypoints_x86_64.o:function art_quick_deoptimize: error: unsupported reloc 42clang: error: linker command failed with exit code 1 (use -v to see invocation)make: *** [out/host/linux-x86/obj/lib/libart.so] Error 1

cp /usr/bin/ld.gold prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8/x86_64-linux/bin/ld

ERROR: Cannot launch Jack server

Android M引入了Jack (Java Android Compiler Kit),在编译时会启动jack server,优化编译速度等。
如果遇到jack编译错误,可以把$HOME/.jack中的配置文件中的SERVER=true设成false,不用jack,jack现在还不稳定。此外,M对应的是OpenJDK7
修改java版本号也可以解决

recipe for target ‘otapackage’ failed

target Executable: adb (out/target/product/sabresd_6dq_A39/obj/EXECUTABLES/adb_intermediates/LINKED/adb)/home/jun/second/sourceCode/code39rel/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/../lib/gcc/arm-linux-androideabi/4.9.x-google/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lpthreadcollect2: error: ld returned 1 exit statusbuild/core/executable_internal.mk:79: recipe for target 'out/target/product/sabresd_6dq_A39/obj/EXECUTABLES/adb_intermediates/LINKED/adb' failedmake[1]: *** [out/target/product/sabresd_6dq_A39/obj/EXECUTABLES/adb_intermediates/LINKED/adb] Error 1make[1]: Leaving directory '/home/jun/second/sourceCode/code39rel'cp: cannot stat 'out/target/product/sabresd_6dq_A39/sabresd_6dq_A39-ota-20160715.zip': No such file or directorybuild/core/Makefile:1831: recipe for target 'otapackage' failedmake: *** [otapackage] Error 1

cp /usr/bin/ld.gold prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/…/lib/gcc/arm-linux-androideabi/4.9.x-google/…/…/…/…/arm-linux-androideabi/bin/ld

recipe for target

prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androideabi-ld: fatal error: out/target/product/sabresd_6dq_A39/obj/lib/crtbegin_so1.o: unsupported ELF machine number 40bionic/libc/crt.mk:62: recipe for target 'out/target/product/sabresd_6dq_A39/obj/lib/crtbegin_so.o' failed

sudo apt-get install libnl-3-dev
sudo apt-get install libnl-genl-3-dev

‘out/target/product/sabresd_6dq_A39/obj/EXECUTABLES/adb_intermediates/LINKED/adb’ failed

/home/jun/second/sourceCode/39rel/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/../lib/gcc/arm-linux-androideabi/4.9.x-google/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lpthreadcollect2: error: ld returned 1 exit statusbuild/core/executable_internal.mk:79: recipe for target 'out/target/product/sabresd_6dq_A39/obj/EXECUTABLES/adb_intermediates/LINKED/adb' failed

sudo apt-get install lib32z1-dev

Android8

ninja: build stopped: subcommand failed.

vi prebuilts/sdk/tools/jack-admin
找到如下语句:
JACK_SERVER_COMMAND=“java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR LAUNCHERNAME"将上述语句修改为:JACKSERVERCOMMAND="java−XX:MaxJavaStackTraceDepth=−1−Djava.io.tmpdir=LAUNCHER_NAME" 将上述语句修改为: JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=LAUNCHERN​AME"将上述语句修改为:JACKS​ERVERC​OMMAND="java−XX:MaxJavaStackTraceDepth=−1−Djava.io.tmpdir=TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4096m -cp $LAUNCHER_JAR $LAUNCHER_NAME”
主要是添加了-Xmx4096m参数,接下来在源码目录下执行如下命令重启jack-admin服务:
$ ./prebuilts/sdk/tools/jack-admin stop-server
$ ./prebuilts/sdk/tools/jack-admin start-server

Android8.0无法stratservice

07-26 18:14:45.867  2302  2550 W LocationExtManager:     at android.os.HandlerThread.run(HandlerThread.java:65)
07-26 18:14:45.867  2302  2550 W LocationExtManager: reconnectService error
07-26 18:14:46.019  1537  2604 I DPMJ    : |REQ:RCVR| DPM creating socket
07-26 18:14:42.942  2230  2869 I chatty  : uid=1000(system) Thread-3 identical 20 lines
07-26 18:14:44.944  2230  2869 W ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.bindService:1611 android.content.ContextWrapper.bindService:698 com.tencent.wecarspeech.sdk.TASConfigManager$a.c:95 com.tencent.wecarspeech.sdk.TASConfigManager$a.b:0 com.tencent.wecarspeech.sdk.TASConfigManager$a$a.run:34
07-26 18:14:46.129   781  6864 I ActivityManager: Force stopping core.system.server.manager.test2 appid=10095 user=0: from pid 7089
07-26 18:14:46.130   781  6864 I ActivityManager: Killing 6887:core.system.server.manager.test2/u0a95 (adj 0): stop core.system.server.manager.test2
07-26 18:14:46.130   781   902 W libprocessgroup: kill(-6887, 9) failed: No such process
07-26 18:14:46.130   781  6864 W ActivityManager: Force removing ActivityRecord{416bee0 u0 core.system.server.manager.test2/core.system.server.manager.test.WatchDogTest t137}: app died, no saved state
07-26 18:14:46.139   505   505 E DisplayDevice: map unknown ((deprecated) sRGB sRGB Full range)/(RenderIntent::COLORIMETRIC) to default color mode
07-26 18:14:46.139   505   505 E DisplayDevice: map unknown ((deprecated) sRGB sRGB Full range)/(RenderIntent::COLORIMETRIC) to default color mode
07-26 18:14:46.142   505  2043 W SurfaceFlinger: Attempting to destroy on removed layer: AppWindowToken{9c3205e token=Token{d17b599 ActivityRecord{416bee0 u0 core.system.server.manager.test2/core.system.server.manager.test.WatchDogTest t137}}}#0
07-26 18:14:46.152   781  6864 I ActivityManager: Killing 6917:core.system.server.manager.test2:dfa/u0a95 (adj 500): stop core.system.server.manager.test2
07-26 18:14:46.153   781  6864 W ActivityManager: Scheduling restart of crashed service core.system.server.manager.test2/core.system.server.manager.test.TestService in 1000ms
07-26 18:14:46.154   781  6864 I ActivityManager:   Force stopping service ServiceRecord{226261f u0 core.system.server.manager.test2/core.system.server.manager.test.TestService}

在Android8.0之后,Google会对后台服务进行控制,并禁止启动后台服务。提出通过startForegroundService() 启动前台服务。但是必须要配合在service 中调用Service.startForeground(),单纯的使用StartService()方式可能会导致程序崩溃(ANR 或者crash)

NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);NotificationChannel Channel = new NotificationChannel(CHANNEL_ID, "主服务", NotificationManager.IMPORTANCE_HIGH);Channel.enableLights(true);//设置提示灯Channel.setLightColor(Color.RED);//设置提示灯颜色Channel.setShowBadge(true);//显示logoChannel.setDescription("ytzn");//设置描述Channel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC); //设置锁屏可见 VISIBILITY_PUBLIC=可见manager.createNotificationChannel(Channel);Notification notification = new Notification.Builder(this).setChannelId(CHANNEL_ID).setContentTitle("主服务")//标题.setContentText("运行中...")//内容.setWhen(System.currentTimeMillis()).setSmallIcon(R.mipmap.ic_launcher)//小图标一定需要设置,否则会报错(如果不设置它启动服务前台化不会报错,但是你会发现这个通知不会启动),如果是普通通知,不设置必然报错.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher)).build();startForeground(1, notification);//服务前台化只能使用startForeground()方法,不能使用 notificationManager.notify(1,notification); 这个只是启动通知使用的,使用这个方法你只需要等待几秒就会发现报错了

Android10

缺少库

gcc-aarch64-linux-gnu


aarch64-linux-gnu-gcc: not found

sudo apt install gcc-aarch64-linux-gnu

libssl-dev

openssl/opensslv.h: No such file or directory

sudo apt-get install libssl-dev

libxtzt6

运行java图形界面报错

Exception in thread “main” java.lang.UnsatisfiedLinkError: /jdk/libawt_xawt.so: libXtst.so.6: cannot open shared object file: No such file or directory

sudo apt install libxtst6:i386

ia32-libs

prebuilts/tools/gcc-sdk/gcc: 行 40: prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/i686-linux-glibc2.7-4.6/bin/i686-linux-gcc: 没有那个文件或目录
orprebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/i686-linux-glibc2.7-4.6/bin/i686-linux-g++: No such file or directory

sudo apt-get install ia32-libs

lib32z1

build/core/binary.mk:432: recipe for target 'out/host/linux-x86/obj/EXECUTABLES/validatekeymaps_intermediates/Main.o' failed

do apt-get install lib32z1

libstdc

out/host/linux-x86/bin/acp: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

do apt-get install libstdc++6
do apt-get install lib32stdc++6

bison

prebuilts/misc/linux-x86/bison/bison: m4 subprocess failed: No such file or directory

do apt-get install bison

xmllint

do apt-get install libxml2-utils

liblzo2-dev

elzo/lzo1x.h: No such file or directory

do apt-get install liblzo2-dev

uuid-dev

fatal error: uuid/uuid.h: 没有那个文件或目录

do apt-get install uuid-dev

zlib.h

 zlib.h: 没有那个文件或目录

do apt-get install zlib1g-dev

p7zip

 未找到命令 7z 

do apt-get install p7zip

未验证

1

repo init 提示错误(Unable to negotiate with 192.168.100.149 port 29418: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1)

修改~/.ssh/config,加入
[
Host *KexAlgorithms +diffie-hellman-group1-sha1
]

2

*repo init时出现Agent admitted failure to sign using the key.*

*Permission denied (publickey).*

出错原因是没有将密钥添加到ssh,在当前用户下执行命令:
ssh-add
即可解决

Android编译问题

UnsatisfiedLinkError

UnsatisfiedLinkError: JNI_ERR returned from JNI_OnLoad in “/vendor/lib/libledcontroldemo.so”

07-14 04:49:04.224  3868  3868 D AndroidRuntime: Shutting down VM
07-14 04:49:04.225  3868  3868 E AndroidRuntime: FATAL EXCEPTION: main
07-14 04:49:04.225  3868  3868 E AndroidRuntime: Process: com.android.dragonboard.service, PID: 3868
07-14 04:49:04.225  3868  3868 E AndroidRuntime: java.lang.UnsatisfiedLinkError: JNI_ERR returned from JNI_OnLoad in "/vendor/lib/libledcontroldemo.so"
07-14 04:49:04.225  3868  3868 E AndroidRuntime:    at java.lang.Runtime.load0(Runtime.java:938)
07-14 04:49:04.225  3868  3868 E AndroidRuntime:    at java.lang.System.load(System.java:1631)
07-14 04:49:04.225  3868  3868 E AndroidRuntime:    at com.android.dragonboard.service.DragonBoardServiceImpl.<init>(DragonBoardServiceImpl.java:17)
07-14 04:49:04.225  3868  3868 E AndroidRuntime:    at com.android.dragonboard.service.DragonBoardService.onBind(DragonBoardService.java:51)
07-14 04:49:04.225  3868  3868 E AndroidRuntime:    at android.app.ActivityThread.handleBindService(ActivityThread.java:3674)
07-14 04:49:04.225  3868  3868 E AndroidRuntime:    at android.app.ActivityThread.access$1400(ActivityThread.java:195)
07-14 04:49:04.225  3868  3868 E AndroidRuntime:    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1739)
07-14 04:49:04.225  3868  3868 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:107)
07-14 04:49:04.225  3868  3868 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:198)
07-14 04:49:04.225  3868  3868 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:6761)
07-14 04:49:04.225  3868  3868 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
07-14 04:49:04.225  3868  3868 E AndroidRuntime:    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:495)
07-14 04:49:04.225  3868  3868 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:949)
07-14 04:49:04.231  3868  3868 I Process : Sending signal. PID: 3868 SIG: 9

1、对应.so文件对应的类,可能被混淆了,造成C/C++中的代码找不到对应的Java类;

hal层服务没启动, 手动启动hal层服务可以解决

PackageManager: Failed to parse

Failed to parse ***apk must have at least one ‘.’ separato

07-13 10:55:49.559   866   866 **W PackageManager: Failed to parse /system/app/GaeiSettings**: /system/app/GaeiSettings/GaeiSettings.apk (at Binary XML file line #152): Invalid process name boot_stat in package com.gaei.settings: must have at least one '.' separato

android:process:是否需要在单独的进程中运行,当设置为android:process=”:remote”时,代表Service在单独的进程中运行。注意“:”很重要,它的意思是指要在当前进程名称前面附加上当前的包名,所以“remote”和”:remote”不是同一个意思,前者的进程名称为:remote,而后者的进程名称为:App-packageName:remote。

ReceiverCallNotAllowedException

ReceiverCallNotAllowedException: BroadcastReceiver components are not allowed to bind to services

01-01 08:00:07.195   318   318 D AndroidRuntime: >>>>>> START com.android.internal.os.ZygoteInit uid 0 <<<<<<
01-01 08:00:07.252   318   318 D AndroidRuntime: CheckJNI is ON
07-11 17:24:44.068  1258  1258 I AndroidRuntime: VM exiting with result code 0, cleanup skipped.
07-13 09:41:17.706  1812  1812 D AndroidRuntime: Shutting down VM
07-13 09:41:17.733  1812  1812 E AndroidRuntime: FATAL EXCEPTION: main
07-13 09:41:17.733  1812  1812 E AndroidRuntime: Process: com.gaei.settings, PID: 1812
07-13 09:41:17.733  1812  1812 **E AndroidRuntime: java.lang.RuntimeException: Unable to start receiver com.gaei.settings.BootStatReceiver: android.content.ReceiverCallNotAllowedException: BroadcastReceiver components are not allowed to bind to services**
07-13 09:41:17.733  1812  1812 E AndroidRuntime:    at android.app.ActivityThread.handleReceiver(ActivityThread.java:2740)
07-13 09:41:17.733  1812  1812 E AndroidRuntime:    at android.app.ActivityThread.-wrap14(ActivityThread.java)
07-13 09:41:17.733  1812  1812 E AndroidRuntime:    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1424)
07-13 09:41:17.733  1812  1812 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:102)
07-13 09:41:17.733  1812  1812 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:148)
07-13 09:41:17.733  1812  1812 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:5431)
07-13 09:41:17.733  1812  1812 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
07-13 09:41:17.733  1812  1812 E AndroidRuntime:    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
07-13 09:41:17.733  1812  1812 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
07-13 09:41:17.733  1812  1812 E AndroidRuntime: Caused by: android.content.ReceiverCallNotAllowedException: BroadcastReceiver components are not allowed to bind to services
07-13 09:41:17.733  1812  1812 E AndroidRuntime:    at android.app.ReceiverRestrictedContext.bindService(ContextImpl.java:116)
07-13 09:41:17.733  1812  1812 E AndroidRuntime:    at com.gac.cloud.analytics.client.StatManagerImpl.b(Unknown)
07-13 09:41:17.733  1812  1812 E AndroidRuntime:    at com.gac.cloud.analytics.client.StatManagerImpl.a(Unknown)
07-13 09:41:17.733  1812  1812 E AndroidRuntime:    at com.gac.cloud.analytics.client.StatManager.init(Unknown)
07-13 09:41:17.733  1812  1812 E AndroidRuntime:    at com.gaei.settings.BootStatReceiver.onReceive(BootStatReceiver.java:28)
07-13 09:41:17.733  1812  1812 E AndroidRuntime:    at android.app.ActivityThread.handleReceiver(ActivityThread.java:2731)
07-13 09:41:17.733  1812  1812 E AndroidRuntime:    ... 8 more

Android在广播Boroadcast中, 不能调用BinderService来启动服务

1 bindService不能在BroadcastReceiver 中调用,
2 registerReceiver不能在BroadcastReceiver调用,可以通过context.getApplicationContext().registerReceiver();解决
在里面调用StartService并把要传递参数放到intent中, 然后去startService

IllegalStateException

IllegalStateException: The specified child already has a parent

290.543  3608  3608 E **AndroidRuntime: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.**
290.543  3608  3608 E AndroidRuntime:   at android.view.ViewGroup.addViewInner(ViewGroup.java:4937)
290.543  3608  3608 E AndroidRuntime:   at android.view.ViewGroup.addView(ViewGroup.java:4768)
290.543  3608  3608 E AndroidRuntime:   at android.view.ViewGroup.addView(ViewGroup.java:4708)
290.543  3608  3608 E AndroidRuntime:   at android.view.ViewGroup.addView(ViewGroup.java:4681)
290.543  3608  3608 E AndroidRuntime:   at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1284)
290.543  3608  3608 E AndroidRuntime:   at android.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1557)
290.543  3608  3608 E AndroidRuntime:   at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1618)
290.543  3608  3608 E AndroidRuntime:   at android.app.BackStackRecord.executeOps(BackStackRecord.java:807)
290.543  3608  3608 E AndroidRuntime:   at android.app.FragmentManagerImpl.executeOps(FragmentManager.java:2386)
290.543  3608  3608 E AndroidRuntime:   at android.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2181)
290.543  3608  3608 E AndroidRuntime:   at android.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2136)
290.543  3608  3608 E AndroidRuntime:   at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2043)
290.543  3608  3608 E AndroidRuntime:   at android.app.FragmentManagerImpl$1.run(FragmentManager.java:719)
290.543  3608  3608 E AndroidRuntime:   at android.os.Handler.handleCallback(Handler.java:790)
290.543  3608  3608 E AndroidRuntime:   at android.os.Handler.dispatchMessage(Handler.java:99)
290.543  3608  3608 E AndroidRuntime:   at android.os.Looper.loop(Looper.java:164)
290.543  3608  3608 E AndroidRuntime:   at android.app.ActivityThread.main(ActivityThread.java:6518)
290.543  3608  3608 E AndroidRuntime:   at java.lang.reflect.Method.invoke(Native Method)
290.543  3608  3608 E AndroidRuntime:   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
290.543  3608  3608 E AndroidRuntime:   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:808)

必须要在parent上调用removeView移除掉你要重复使用的这个view才可以,有时候不知道你的view被哪一个parent给绑定了

Fragment中onCreateView方法中, 不能直接返回container对象

public class DragonBoardFragment extends Fragment implements View.OnClickListener, CompoundButton.OnCheckedChangeListener, TextWatcher {@Nullable@Overridepublic View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {  View view = new View(getActivity());return view;//return container;}
}

IllegalStateException

IllegalStateException: Cannot broadcast before boot completed

05-29 20:31:23.322   981   981 E AndroidRuntime: FATAL EXCEPTION: main
05-29 20:31:23.322   981   981 E AndroidRuntime: Process: com.core.system.service, PID: 981
05-29 20:31:23.322   981   981 **E AndroidRuntime: java.lang.RuntimeException: Unable to create service com.core.system.service.CoreSystemServer: java.lang.IllegalStateException: Cannot broadcast before boot completed**
05-29 20:31:23.322   981   981 E AndroidRuntime:    at android.app.ActivityThread.handleCreateService(ActivityThread.java:3582)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at android.app.ActivityThread.access$1300(ActivityThread.java:200)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1672)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:106)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:193)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:6718)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
05-29 20:31:23.322   981   981 E AndroidRuntime: Caused by: java.lang.IllegalStateException: Cannot broadcast before boot completed
05-29 20:31:23.322   981   981 E AndroidRuntime:    at android.os.Parcel.createException(Parcel.java:1958)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at android.os.Parcel.readException(Parcel.java:1918)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at android.os.Parcel.readException(Parcel.java:1868)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at android.app.IActivityManager$Stub$Proxy.broadcastIntent(IActivityManager.java:3894)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at android.app.ContextImpl.sendBroadcastAsUser(ContextImpl.java:1224)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at android.app.ContextImpl.sendBroadcastAsUser(ContextImpl.java:1196)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at android.content.ContextWrapper.sendBroadcastAsUser(ContextWrapper.java:525)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at com.core.system.service.CoreSystemServerImpl.sendStartBroadcast(CoreSystemServerImpl.java:518)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at com.core.system.service.CoreSystemServerImpl.<init>(CoreSystemServerImpl.java:223)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at com.core.system.service.CoreSystemServer.onCreate(CoreSystemServer.java:37)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at android.app.ActivityThread.handleCreateService(ActivityThread.java:3570)
05-29 20:31:23.322   981   981 E AndroidRuntime:    ... 8 more
05-29 20:31:23.322   981   981 E AndroidRuntime: Caused by: android.os.RemoteException: Remote stack trace:
05-29 20:31:23.322   981   981 E AndroidRuntime:    at com.android.server.am.ActivityManagerService.verifyBroadcastLocked(ActivityManagerService.java:21942)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:21974)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at android.app.IActivityManager$Stub.onTransact$broadcastIntent$(IActivityManager.java:10171)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:167)
05-29 20:31:23.322   981   981 E AndroidRuntime:    at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3291)

Android不能在开机前发送自定义广播

intent增加FLAG: Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT

Intent statusIntent = new Intent(Intent.ACTION_BATTERY_LOW);
statusIntent.setFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
mContext.sendBroadcastAsUser(statusIntent, UserHandle.ALL);

Android源码编译问题相关推荐

  1. Android 源码编译及常见错误及解决方法

    Android 源码编译及常见错误及解决方法 参考文章: (1)Android 源码编译及常见错误及解决方法 (2)https://www.cnblogs.com/kyyblabla/p/360393 ...

  2. 【Android开发】构建Android源码编译环境

    原文:http://android.eoe.cn/topic/android_sdk 构建Android源码编译环境 123456789 10 11 12 13 14 15 16 17 18 $ su ...

  3. android源码编译出错的原因

    (1)gcc的版本过高,由于android源码编译要求为4.3,如果你的gcc版本为4.4,那你的编译可能会失败的!我的系统是ubuntu 10.04,默认的gcc版本为4.4,gcc-4.4太严格, ...

  4. [Android Pro] Android源码编译之Nexus5真机编译

    reference to : http://blog.csdn.net/liu1075538266/article/details/51272398 1.   前言 在Android安全的研究工作中, ...

  5. Android 源码编译详解【合集篇】

    Android 源码编译详解[一]:服务器硬件配置及机型推荐 做 Android系统开发多年,开发环境都是入职就搭建好了,入职时拿个账号密码就直接开始搞开发了,年初换了新公司,所有的项目都是刚起步,一 ...

  6. Android源码编译(基于Ubuntu18.0.4)

    文章目录 一.环境搭建 硬件要求 软件要求 操作系统和 JDK 主要软件包 软件安装 Git安装 repo工具安装 安装 openJDK 8 其他依赖安装 二.源码下载 建立源码文件夹 初始化仓库 源 ...

  7. Android 源码编译技巧--模块清理

    参考之前的 Android 源码编译技巧–模块编译_南国樗里疾的博客-CSDN博客 https://blog.csdn.net/weixin_44021334/article/details/1069 ...

  8. Android源码编译make的错误处理

    https://www.linuxidc.com/Linux/2011-11/47411.htm Android源码下载:官方下载 或参考android源码下载方式 Android编译版本: PLAT ...

  9. linux系统编译时make出错,Android源码编译make的错误处理

    Android编译版本:PLATFORM_VERSION=4.0.1(最新Android 4.0.1) OS 操作系统平台: Linux yanggang 2.6.35-30-generic #61- ...

  10. Android源码编译环境搭建教程 (一) - Ubuntu系统构建

    Android源码编译环境搭建教程 (一) - Ubuntu系统构建 本教程为感兴趣的同学提供Android源码编译的环境搭建,当然这里都是基于windows系统,mac系统也差不多,将相应的软件替换 ...

最新文章

  1. 一位年轻董事长给大学生的18条好建议
  2. win10更新后程序路径盘符变成*星号解决方法
  3. django中的缓存以及跨域
  4. 编译执行和解释执行/初识量子计算机
  5. MKL学习——基本操作C++实现
  6. java gc与finalize_finalize方法与Java GC
  7. OpenCV实践笔记(1)----图像显示
  8. 上研究生学计算机去河大学校好不好,河南大学研究生,河南大学研究生值得读吗?...
  9. linux下安装qt教程
  10. android每个程序的内存大小,如何获取Android手机全部内存和可用内存尺寸
  11. opencv读取大恒相机
  12. 网络安全笔记8——虚拟专网技术
  13. 服务器读取本地文件,如何在云服务器上打开本地文件
  14. 超分文章记录 SRCNN-FSRCNN-ESPCN-VDCN-DRCN-RDN-LapSRN-SRDenseNet-SRGAN
  15. GDAL C++ API 学习之路 (1)Driver篇 代码示例 翻译 自学
  16. 常用软件下载地址汇总
  17. python我的所得税计算器_python实现计算器简易版
  18. 比尔总动员小炎觉醒任务攻略
  19. 张瑞敏:海尔的信息化革命
  20. 小迪安全视频-学习笔记(收藏)

热门文章

  1. 西餐菜单怎么翻译成英文
  2. 计算机部分应用显示模糊,win10系统打开部分软件字体总显示模糊的解决方法
  3. 解决大部分win10软件字体模糊的问题
  4. 计算机里的硬盘分区,Disk Genius对电脑硬盘分区的详细步骤
  5. 基于gmapping的激光slam导航
  6. 软件架构设计-软件架构风格、分层架构
  7. python jinja2_python-Jinja2用法
  8. 有监督学习与无监督学习
  9. PayPal提现到美国账户收35美元怎么办?最新3种解决办法!
  10. C# 使用OpenXML创建PPT表格