android 开发遇到的问题总结--不定期更新

原创 2016年08月31日 10:42:29

一、.9图片在eclipse中正常,android studio中异常

Error:Execution failed for task’:app:mergeDebugResources’. 
Crunching Cruncher image.9.png failed, see logs 

原因:

.9图片不标准,在eclipse没有android studio中严格被检测出错

解决:

用android studio 打开.9图片重新画线

.9图片规则:

由于 .9 图的上边界和左边界的划线是负责拉伸扩展的,
而下边界和右边界划线则是内容区域,
所以 .9 图不允许右侧和下边界有两条划线,
而左边界和上边界则没有问题。

二、android 5.0之后toolbar阴影怎么去除

解决:

activity中添加代码 getSupportActionBar().setElevation(0);

三、利用android studio 开发Cocos2d-x

1.创建HelloWorld项目

解压下载的文件xxx
进入到目录xxx/tools/cocos2d-console/bin/cocos.py
打开终端运行cocos.py脚本创建文件

./cocos.py new HelloWorldDemo -p com.coco2dx.org -l cpp -d ~/Desktop
或者
python cocos.py new HelloWorldDemo -p com.coco2dx.org -l cpp -d ~/Desktop

2.进入创建的项目的 proj.android-studio目录

cd proj.android-studio

执行

xxx/tools/cocos2d-console/bin/cocos compile -p android --android-studio

等待编译成功
将proj.android-studio 导入到android studio 就可以了

3.执行过程中会出现问题,需要添加sdk,jdk,ndk的环境变量

$cd ~
$open .bash_profile
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home
export ANDROID_SDK_ROOT=/Users/mangues/Library/Android/sdk
export ANDROID_JAVA_HOME=${JAVA_HOME}
export NDK_ROOT=//Users/mangues/Library/Android/sdk/ndk-bundle
PATH=~/bin:$PATH

export PATH=${PATH}:${JAVA_HOME}:${ANDROID_SDK_ROOT}:${NDK_ROOT}:${ANDROID_SDK_ROOT}/tools:${ANDROID_SDK_ROOT}/platform-tools

4.如果使用Genymotion 运行helloword程序会出现

 java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/com.coco2dx.org-2/lib/arm/libMyGame.so" has unexpected e_machine: 40
                      at java.lang.Runtime.loadLibrary(Runtime.java:372)
                      at java.lang.System.loadLibrary(System.java:1076)
                      at org.cocos2dx.lib.Cocos2dxActivity.onLoadNativeLibraries(Cocos2dxActivity.java:248)
                      at org.cocos2dx.lib.Cocos2dxActivity.onCreate(Cocos2dxActivity.java:264)

原因:

因为genymotion用的是virtualbox来模拟android设备,所以android系统的架构应该是x86而不是arm,因此,我们的jni的配置应该作相应的改变,这个改变不会太大,但是所有的cocos链接库都要重新编译为支持x86的版本

解决:

按照http://blog.csdn.net/c860_zy/article/details/21410339

安装上面方法 并没有在android studio上解决,只能在手机上运行了,希望解决的朋友告知一下

四、android源码编译问题

5.1 Jack “Out of memory error”

错误日志:

Out of memory error (version 1.2-rc4 'Carnac' (298900 f95d7bdecfceb327f9d201a1348397ed8a843843 by android-jack-team@google.com)).
GC overhead limit exceeded.
Try increasing heap size with java option '-Xmx<size>'.
Warning: This may have produced partial or corrupted output.

增加Java虚拟机的-Xmx大小,即设置一个较大的堆内存上限。

可以修改Jack的配置文件prebuilts/sdk/tools/jack-admin。
这时一个管理Jack的shell脚本,找到start-server函数,直接修改其启动参数,由原来的

JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR $LAUNCHER_NAME"

改为

JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4096m -cp $LAUNCHER_JAR $LAUNCHER_NAME"
1

此时Jack服务器仍然在后台执行,所以我们需要将其停止,然后重启启动(make会自动启动Jack服务器)才能使得修改后的参数生效。

我们执行下面的命令

$ ./prebuilts/sdk/tools/jack-admin stop-server

然后我们重新执行make -jN命令(N是你前边设置的并行任务数量)开始编译。

5.2 SecureTransport Unsupported curl

Jack server failed to (re)start, see Jack server log Unsupported curl, please use a curl not based on SecureTransport Unsupported curl, please use a curl not based on SecureTransport ninja: build stopped: subcommand failed. make: *** [ninja.intermediate] Error 1

第一种方法:使用 Homebrew:

brew install curl --with-openssl
export PATH=$(brew --prefix curl)/bin:$PATH
caffeinate make -j4

第二种方法:

检测你的curl版本
$ /usr/bin/curl --version

curl 7.43.0 (x86_64-apple-darwin15.0) libcurl/7.43.0 SecureTransport zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz UnixSockets 

output include SecureTransport错误 你需要安装openssl编译的curl
从下面地址下载curl:
http://curl.haxx.se/download.html
然后编译:
./configure --prefix=/usr/local/curl --with-ssl=/usr/local/Cellar/openssl/1.0.2d_1

接着增加环境变量到 .bash_profile
export PATH="/usr/local/curl/bin:$PATH"

打开新的终端 检测下curl版本:
$ curl --version
curl 7.46.0 (x86_64-apple-darwin15.2.0) libcurl/7.46.0 OpenSSL/1.0.2d zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp 
Features: IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets 

5.3 /bin/bash: xz: command not found

/bin/bash: xz: command not found
ninja: build stopped: subcommand failed.
make: *** [ninja_wrapper] Error 1

xz这个解压工具没有安装XZ在MAC系统下的安装与使用

五、android 点击变色问题

1.color选择drawable选择

<item> tag requires a 'drawable' attribute or child tag defining a drawable

以上问题是因为background 用了color选择器,错误代码如下:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true" android:color="@color/white_pressed"></item>
    <item android:state_pressed="false" android:color="@color/white"></item>
</selector>

解决: color 修改位 drawable

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true" android:drawable="@color/white_pressed"></item>
    <item android:state_pressed="false" android:drawable="@color/white"></item>
</selector>

drawable用在背景颜色变化上 background

六、开发问题

1.switch控件,解决利用setChecked 控制switch开关时 自动调用onCheckedChanged方法引起反复调用的问题

  @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        switch (buttonView.getId()) {
            case R.id.sc_key:
                isCheckBoolean = isChecked;
                if (isChecked) {
                    repairePresenter.changeCarState(1, orderBean.getBikeNumber());//调用网络,失败调用onChangeCarStateFailure
                } else {
                    repairePresenter.changeCarState(0, orderBean.getBikeNumber());
                }
                break;
        }
    }
 public void onChangeCarStateFailure(String message) {
        scKey.setOnCheckedChangeListener(null);  //反注册,解决代码自动修改状态 引起的onCheckedChanged调用
        isCheckBoolean = !isCheckBoolean;
        scKey.setChecked(isCheckBoolean);
        scKey.setOnCheckedChangeListener(this);
    }
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android源代码编译笔记(支持5.x及以上版本) - Linux篇

这是之前的笔记,主要记录了如何搭建Android源代码编译环境进行编译。里边有一些优化和问题的记录,可能会帮助大家更快地编译出来自己的Android系统。系统与硬件为了方便,我使用了VMWare虚拟机...
  • pcsxk
  • pcsxk
  • 2016年07月24日 14:57
  • 7736

Android源码问题集锦

sdfsdf

解决:编译CM14.1 提示Jack “Out of memory error”错误

Android 7.1编译到33%时出现JDK内存溢出的错误: Out of memory error (version 1.2-rc4 'Carnac' (298900 f95d7bdecfc...

android源码编译问题

Jack “Out of memory error” 错误日志: Out of memory error (version 1.2-rc4 'Carnac' (298900 f95d7bdecfc...

Increasing Java Heap Size — Out of memory error — java -Xmx3000M -Xms1500M -XshowSettings:all

Increasing Java Heap Size — Out of memory error — java -Xmx3000M -Xms1500M -XshowSettings:all
  • ztguang
  • ztguang
  • 2016年06月10日 15:17
  • 3659

高通平台编译常见错误(持续更新)

1,Jack “Out of memory error” 错误日志: Out of memory error (version 1.2-rc4 'Carnac' (298900 f95d7bdecf...

Ubuntu 14.04编译AOSP for Nexus/Pixel

虽说几年前博主在一家公司做机顶盒的时候总是需要编译Android源码,但是那时还没有手中的爱机:Nexus 6,又名shamu。今天我要为它刷入一个自己编译的Rom。拿起键盘就是干。...

Msm8937+android7.1.1编译环境搭建及编译

Msm8937 +android7.1.1编译记录[ 30% 21418/71006] Building with Jack:...k_intermediates/with-local/classes...

Android开发过程中遇到的问题

长期补充,我只是大自然的搬运工=。=记录一些自己开发过程中遇到的问题和解决的办法...
  • leafact
  • leafact
  • 2015年09月07日 00:06
  • 1776

Linux下编译Android源码问题汇总

前言 本人最近在研究Android源码编译,现将编译过程中遇到问题汇总于此。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android 开发遇到的问题总结--不定期更新
举报原因:
原因补充:

(最多只允许输入30个字)