小编MrJ*_*Jre的帖子

xcode 5.1中的Arm64架构

在新的XCode 5.1中,arm64已成为构建的标准架构之一.

但是,在我目前的项目中,我包含了尚未支持这种新架构的库(例如Google AdMob) - 这些现在导致链接器错误:

ld: symbol(s) not found for architecture arm64
Run Code Online (Sandbox Code Playgroud)

据说谷歌AdMob 6.8.0 支持arm64,但我不能确认这一点,除非cputype (16777228) cpusubtype (0)是arm64?(通过文件命令行工具找到)

libGoogleAdMobAds.a: Mach-O universal binary with 5 architectures
libGoogleAdMobAds.a (for architecture armv7):   current ar archive random library
libGoogleAdMobAds.a (for architecture armv7s):  current ar archive random library
libGoogleAdMobAds.a (for architecture i386):    current ar archive random library
libGoogleAdMobAds.a (for architecture x86_64):  current ar archive random library
libGoogleAdMobAds.a (for architecture cputype (16777228) cpusubtype (0)):   current ar archive random library
Run Code Online (Sandbox Code Playgroud)

有办法解决这个问题吗?

xcode objective-c ios xcode5.1

63
推荐指数
4
解决办法
7万
查看次数

自定义半透明Android ActionBar

我一直在搜索互联网(例如Android文档,这里的答案等),以获得我认为是一个相当微不足道的问题的答案.您如何实现像Google音乐YouTube中的半透明操作栏(链接是图像示例)?

我希望视频内容是全屏的,不受操作栏的约束/推送,同时仍然利用内置UI组件的优势.我显然可以使用完全自定义的视图,但如果可能的话,我宁愿利用ActionBar.

表现

<activity
    android:name="videoplayer"
    android:theme="@android:style/Theme.Holo"
    android:launchMode="singleTop"
    android:configChanges="keyboardHidden|orientation"/>
Run Code Online (Sandbox Code Playgroud)

活动

// Setup action bar
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
View customActionBarView = getLayoutInflater().inflate(R.layout.player_custom_action_bar, null);
actionBar.setCustomView(customActionBarView,
                        new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT,
                                                   R.dimen.action_bar_height));
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
Run Code Online (Sandbox Code Playgroud)

菜单

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/button1"
        android:icon="@drawable/button1"
        android:showAsAction="always"/>

    <item
        android:id="@+id/button2"
        android:icon="@drawable/button2"
        android:showAsAction="always"/>
</menu>
Run Code Online (Sandbox Code Playgroud)

自定义ActionBar视图

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/custom_action_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="center"
    android:background="@color/TranslucentBlack">

    <!--Home icon with arrow-->
    <ImageView
        android:id="@+id/home"
        android:src="@drawable/home"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"/>

    <!--Another image-->
    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:visibility="visible"/>

    <!--Text if no image-->
    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:gravity="center_vertical"
        android:visibility="gone"/>

    <!--Title--> …
Run Code Online (Sandbox Code Playgroud)

android android-3.0-honeycomb android-4.0-ice-cream-sandwich android-actionbar android-5.0-lollipop

53
推荐指数
5
解决办法
5万
查看次数

android.widget.ProgressBar.onRestoreInstanceState中无法解释的ClassCastException

我已经将我的应用程序在商店中存放了一段时间,但它似乎根据开发者控制台中的崩溃报告偶尔崩溃,说: java.lang.ClassCastException in android.widget.ProgressBar.onRestoreInstanceState使用堆栈跟踪:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.company.myapp/com.mycompany.myapp.activity.MyActivity}: java.lang.ClassCastException: android.view.AbsSavedState$1 cannot be cast to android.widget.ProgressBar$SavedState
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1996)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2023)
at android.app.ActivityThread.access$600(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1174)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4503)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassCastException: android.view.AbsSavedState$1 cannot be cast to android.widget.ProgressBar$SavedState
at android.widget.ProgressBar.onRestoreInstanceState(ProgressBar.java:1093)
at android.view.View.dispatchRestoreInstanceState(View.java:9975)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2408)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2408)
at android.view.View.restoreHierarchyState(View.java:9951)
at com.android.internal.policy.impl.PhoneWindow.restoreHierarchyState(PhoneWindow.java:1611)
at android.app.Activity.onRestoreInstanceState(Activity.java:908)
at android.app.Activity.performRestoreInstanceState(Activity.java:880)
at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1102)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974)
... 11 more
Run Code Online (Sandbox Code Playgroud)

这些崩溃的原因使我无法理解,我无法在任何设备上重现它.我也没有在onRestoreInstanceState任何地方被覆盖.有人能指出我有道理的方向吗?

android android-widget

34
推荐指数
2
解决办法
1万
查看次数

@import"程序中意外'@'

我将项目更新为Xcode 5并在构建设置中启用了模块.但是,我Unexpected '@' in program在使用时看到编译器错误@import.

#ifndef __IPHONE_7_0
#warning "This project uses features only available in iOS SDK 7.0 and later."
#endif

#ifdef __cplusplus
#import <opencv2/opencv.hpp>
#endif

#ifdef __OBJC__
@import SystemConfiguration;
@import UIKit;
Run Code Online (Sandbox Code Playgroud)

还有什么应该做的吗?

ios ios7 xcode5

26
推荐指数
3
解决办法
2万
查看次数

字体太大,无法容纳缓存

所以我最近切换到android 3.0(蜂窝),我有一些硬件渲染的问题,特别是在某个自定义视图我写的我用字体大小200来显示一些文本.

不幸的是,考虑到我在日志中出现的错误,openGLRenderer似乎不太喜欢那种相当大的字体大小:

06-06 16:22:00.080: ERROR/OpenGLRenderer(2503): Font size to large to fit in cache. width, height = 97, 145
Run Code Online (Sandbox Code Playgroud)

有没有解决方法(或修复它的方法),以便我可以获得所需字体大小的文本?

android font-size hardware-acceleration android-3.0-honeycomb

20
推荐指数
2
解决办法
5553
查看次数

Appwidget大小计算

可能是我,但是当我根据android页面上给出的公式计算最小app小部件大小时,我得不到正确的小部件宽度; 公式如下:

width(n)=(70 xn) - 30

当我想要一个5x1小部件时,正确的宽度将是(5*70) - 30 = 320dp.然而,当在motorola Xoom上测试它时,它解析为4x1小部件.我已经测试了不同的值,400dp对于带有Honeycomb的motorola xoom上的5x1似乎很好,但后来我在常规Galaxy Tab上用Gingerbread测试它然后它解析为6x1(就像人们期望的那样).

这里有两个问题;

  • 我可以俯瞰Gingerbread和Honeycomb有什么区别?
  • 既然我知道ICS小部件大小不再在小部件之间有填充,那么这里有一些经验法则吗?

android android-3.0-honeycomb android-2.3-gingerbread android-4.0-ice-cream-sandwich android-appwidget

16
推荐指数
2
解决办法
1万
查看次数

在API 1.6上部署VerifyError

在Android 1.6上部署我的应用程序时,我遇到了向后兼容性问题.我在这段代码上得到了VerifyError:

if(android.os.Build.VERSION.SDK_INT >= 11) {
    getActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.actionbar_bg));
}
Run Code Online (Sandbox Code Playgroud)

这不是意料之外的,因为在API 11之前不存在getActionBar(),但1.6之后(API 5及更高版本?)根据在API级别上部署时获取的logcat消息进行半优雅的构建8装置;

06-27 16:47:04.333: INFO/dalvikvm(11529): Could not find method com.me.app.MyActivity.getActionBar, referenced from method com.me.app.MyActivity.init
06-27 16:47:04.333: WARN/dalvikvm(11529): VFY: unable to resolve virtual method 1090: Lcom.me.app.MyActivity;.getActionBar ()Landroid/app/ActionBar;
06-27 16:47:04.333: DEBUG/dalvikvm(11529): VFY: replacing opcode 0x6e at 0x004f
06-27 16:47:04.333: DEBUG/dalvikvm(11529): VFY: dead code 0x0052-005f in Lcom.me.app.MyActivity;.init (Z)V
Run Code Online (Sandbox Code Playgroud)

1.6及更早版本不会这样做,而是抛出VerifyError:

06-27 16:23:45.561: ERROR/dalvikvm(427): Could not find method com.me.app.MyActivity.getActionBar, referenced from method com.me.app.MyActivity.init
06-27 16:23:45.561: WARN/dalvikvm(427): VFY: unable to resolve virtual method 1090: Lcom/me/app/MyActivity;.getActionBar ()Landroid/app/ActionBar;
06-27 …
Run Code Online (Sandbox Code Playgroud)

android backwards-compatibility verifyerror android-3.0-honeycomb android-4.0-ice-cream-sandwich

14
推荐指数
1
解决办法
2730
查看次数

具有共享代码库的多个应用程序

由于在同一个应用程序的Android市场上同时拥有免费和付费版本很受欢迎,我决定也这样做.最初我只是复制了完整的代码库,并在这里和那里调整了一些代码(添加了广告,内置了一些限制等),因为当时没有选项来进行库项目,但这给我留下了两个很难管理修复的项目因为我需要做两次这样的bug.

从r14开始,我们可以使用带有资源的库项目,因此,就我所知,这对于这个特定问题是一个很好的解决方案.因此,我已经阅读了图书馆项目和结论,我很想知道不同版本的项目所需的最小文件数量是多少.因此,我的问题是;

  • 我可以拥有共享项目中的所有代码,并且基本上只有清单的裸骨项目吗?
    • 如果是的话,我应该吗?这是概念上的最佳方式吗?(除了它取决于我的代码库这一事实)
  • 我应该如何处理库包命名,是否有具体的规则?
  • 有没有相关的工具可以比较来自两个不同项目的代码,也许可以自动魔法或自动手动合并它们,哪一个更受欢迎?

android

14
推荐指数
2
解决办法
3253
查看次数