我在网上下载了一个据称是Google 通讯录源码的程序,用Eclipse打开后,每个java文件都有错误,错误的原因都是引用了com.android.internal.R。
我在百度上查了查,有人说“com.开头的包都是隐藏的,运行环境会有,但是开发环境你找不到的,就是系统会用它,但是不能显示的告诉你去用,android.R 这个就是你对应开发环境中的,让你用的”。
直接将com.android.internal.R改为android.R也通不过。
请问这个源码如何才能在开发环境中成功使用呢?
例如报错的行有:
mSecondaryOpen = res.getDrawable(com.android.internal.R.drawable.expander_ic_maximized);
mSecondaryClosed = res.getDrawable(com.android.internal.R.drawable.expander_ic_minimized);
我在百度上查了查,有人说“com.开头的包都是隐藏的,运行环境会有,但是开发环境你找不到的,就是系统会用它,但是不能显示的告诉你去用,android.R 这个就是你对应开发环境中的,让你用的”。
直接将com.android.internal.R改为android.R也通不过。
请问这个源码如何才能在开发环境中成功使用呢?
例如报错的行有:
mSecondaryOpen = res.getDrawable(com.android.internal.R.drawable.expander_ic_maximized);
mSecondaryClosed = res.getDrawable(com.android.internal.R.drawable.expander_ic_minimized);
解决方案 »
- linphone有android开源代码么?
- Camera sensor 调试遇到问题
- 那位有《google android 创赢路线与产品开发实战》 电子版的
- 请教这样的应用架构如何设计好?
- BaiDu地图showPopup报空指针问题
- 利用3G实时传输视频,请进讨论
- 如何合并Android工程的两个自定义的存储全局变量的Application类
- viewpager怎么判断没操作时自动切换图片,手动切换时图片自动切换停止
- java.lang.NullPointerException at com.android.layoutlib.bridge.impl.RenderSessi
- 如何android代码使得在设置打开蓝牙后不自动关闭,即去掉自动关闭功能
- ANDROID中用MediaPlayer不能播放中文文件名的MP3??
- Android:TextView:同时调用setLines与setMaxLines(或者setLines与setMinLines)方法均有问题
用google APIs 2.2试试看。
我想看看 可是 用到了
import com.android.internal.telephony.CallerInfo; 好多类似这样的类 你怎么处理的
com.android.internal.R.string.contact_status_update_attribution_with_date,
timeClause, labelClause);
com.android.internal.R.string.contact_status_update_attribution,
labelClause);return ContactsContract.Preferences.SORT_ORDER_PRIMARY;也有出错信息,说“Preferences cannot be resolved or is not a field”请问谁有可在Eclipse 编译通过的通讯录源码程序?希望能传给我,谢谢,或者提供下载通道,我的邮箱 [email protected],
有个朋友已提出类似问题,说可以通过一定方法将internal.jar加到系统中,但是我未找到该压缩文件,请问哪位朋友有?请发给我,或提供下载渠道。谢谢
下附他人问题和解答(我还没看明白):com.android.internal里面的类是Android的内部类,在ADK里是不可以调用用的,但我在做了一个项目需要用到com.android.internal里的类。据闻有一些高手能用到Android的内部类,如com.android.internal.telephony.Phone,不知他们是如何做到的。请问论坛里有人知道如何在应用程序里使用com.android.internal里面类吗?急问!先谢过!(悬赏分先为十分,若方案可行再加十分 ^_^)
解答如下:
PROJECT的JAVA BUILD PATH上,LIB加上internal.jar。
import里面的类,使用。
再看看下面的文字,加上里面提到的参数。
Attempt to include a core VM class in something other than a core library.
It is likely that you have attempted to include the core library from a desktop
virtual machine into an application, which will most assuredly not work. If
you really intend to build a core library -- which is only appropriate as
part of creating a full virtual machine binary, as opposed to compiling an
application -- then use the "--core-library" option to suppress this error
message. If you go ahead and use "--core-library" but are in fact building
an application, then please be aware that your build will still fail at some
point; you will simply be denied the pleasure of reading this helpful error
message.
由于在Android源码中,很多方法、成员、类、包都被打上@hide标签,这些成员在SDK中没有公开,以至于在编译Launcher源码时最常遇到的类android.view.View的成员mScrollX无法访问。因此首先需要下载Android的代码并且编译好,因为要用到一些编译完成的class.jar文件这里我们用到的有:(生成的包的路径为out/target/common/obj/JAVA_LIBRARIES)
1)framework_intermediates/classes.jar :这个主要是android的框架类
2)android-common_intermediates/classes.jar :这个包含com.android.common.Search这个类
3)core_intermediates/classes.jar :这个包包含dalvik.system.VMRuntime这个类
这些都是需要导入到工程里面的包,这个可以通过配置工程的Build Path来加入,
右键工程名称然后选择Build Path->Configure Build Path...->Libraries->Add Library->User Library->User Libraries...->New...
然后将上面3个依赖的包一个个的加入进来,分别命名为android_framework,android_common,android_core.
将3个包加入进来后,然后还需要将它们放到android2.3.3这个包的前面,可以在Build Path配置中选择Order and Export
这时候就会发现Launcher2工程以及没有错误了,也可以编译了。