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

一、.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);
    }
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android开发教程及笔记-完整版.pdf》是一本关于Android开发的教程和笔记的完整版电子书。这本电子书主要介绍了Android开发所需的各种知识和技术,对于想要学习Android开发的人来说是一本非常有价值的资料。 这本电子书包含了Android开发的基础知识,如Android系统的介绍、Android开发环境的搭建以及常用开发工具的使用方法。同时,它也详细介绍了Android应用程序的开发流程,包括界面设计、布局管理、事件处理、数据库操作等方面的内容,使读者能够全面掌握Android应用程序的开发技巧。 此外,这本电子书还介绍了一些高级的Android开发技术,如网络编程、多媒体处理、传感器应用等方面的知识。通过学习这些高级技术,读者可以进一步提升自己的Android开发水平,设计出更加优秀和复杂的Android应用程序。 除了知识点的介绍之外,这本电子书还提供了大量的实例和代码,让读者能够通过实践来巩固所学知识。同时,它还给出了一些常见问题的解决方法和开发经验的分享,帮助读者更好地理解和应用所学的知识。 总之,《Android开发教程及笔记-完整版.pdf》是一本非常实用的Android开发学习资料,其全面而详细的内容将帮助读者系统地学习和掌握Android开发的技能,为实际项目的开发提供了很好的指导。无论是初学者还是有一定经验的开发者,都可以从中受益匪浅。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值