我想在不安装BarCode Scanner应用程序的情况下将ZXing QR Code集成到我的Android应用程序中,我按照以下步骤操作:
1)首先我下载了ZXing.zip文件并解压缩
2)打开ZXing项目作为Android现有项目,然后转到android文件夹并打开android文件夹,并将core.jar文件包含到名为CaptureActivity的ZXing项目中.
3)我在我的项目名为"QRCodeSample"中使用了CaptureActivity项目作为库.(将CaptureActivity包含为库的问题)
4)我的代码如下:
public class QRCodeSampleActivity extends Activity {
Button b1;
static String contents;
public static final int REQUEST_CODE = 1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
b1 = (Button) findViewById(R.id.button1);
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
/*Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE",
"QR_CODE_MODE");
startActivityForResult(intent, 0);*/
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
} …Run Code Online (Sandbox Code Playgroud) 我想知道android项目层次结构中Android私有库,引用库和Android依赖项的确切用法?

我有一个使用方面的lib,可以通过maven获得,现在我正在尝试在Android应用程序中使用该lib.
如果我在app gradle文件中包含此插件,一切正常,但我的目标是将my classpath 'com.uphyca.gradle:gradle-android-aspectj-plugin:0.9.+'和apply plugin: 'android-aspectj'插件所需的(和插件所需)解压缩到my.lib gradle文件而不是在我的应用程序中声明.
那可能吗?
app gradle文件:
classpath 'com.uphyca.gradle:gradle-android-aspectj-plugin:0.9.+'
apply plugin: 'android-aspectj'
dependencies {
compile 'my.lib:example:1.0.0'
}
Run Code Online (Sandbox Code Playgroud)
目标:
app gradle文件:
dependencies {
compile 'my.lib:example:1.0.0'
}
Run Code Online (Sandbox Code Playgroud)
my.lib gradle文件:
classpath 'com.uphyca.gradle:gradle-android-aspectj-plugin:0.9.+'
apply plugin: 'android-aspectj'
dependencies {
compile 'org.aspectj:aspectjrt:1.7.3'
}
Run Code Online (Sandbox Code Playgroud) 这一切都在标题中.虽然我看到<uses-sdk>在我见过的所有示例库项目中都有指定AndroidManifest.xml,但我觉得它是无关紧要的.
事实上,我怀疑<uses-permission>也是无关紧要的,因为都是的属性<manifest>,比其他package.
谁能确认一下?
我有一个包含几个包的图书馆 -
让我们说
包a;
包b;
在包内我有公共a_class
包里面b我有公共b_class
a_class使用b_class.
我需要从中生成一个库,但我不希望客户端看到b_class.
我所知道的唯一解决方案是将我精美易懂的软件包展平为单个软件包,并使用b_class的默认软件包访问.还有另一种方法吗?也许使用接口或某种形式的设计模式?
我们建立了一个我们分发给客户的图书馆.我们分发原始的aar文件供他们使用.我们还使用GitHub的原始访问API来提供Maven存储库.
现在为了保持整洁,我们将库分成几个模块:
include ':library'
include ':geohash'
include ':networkstate'
include ':okvolley'
include ':volley'
Run Code Online (Sandbox Code Playgroud)
library是一个Android库,所以是volley和okvolley和networkstate.
现在,当我发布时library,依赖树看起来像这样:
\--- com.sensorberg.sdk:sensorberg-sdk:0.10.0-SNAPSHOT
+--- com.squareup.okhttp:okhttp-urlconnection:2.2.0
| \--- com.squareup.okhttp:okhttp:2.2.0
| \--- com.squareup.okio:okio:1.2.0
+--- com.google.code.gson:gson:2.3.1
+--- android-sdk:okvolley:unspecified
| +--- com.squareup.okhttp:okhttp-urlconnection:2.2.0 (*)
| +--- com.google.code.gson:gson:2.3.1
| +--- android-near-gradle:volley:unspecified
| \--- com.squareup.okhttp:okhttp:2.2.0 (*)
+--- android-sdk:networkstate:unspecified
+--- com.squareup.okhttp:okhttp:2.2.0 (*)
+--- android-sdk:volley:unspecified
\--- com.loopj.android:android-async-http:1.4.5
Run Code Online (Sandbox Code Playgroud)
正如您所见,android-sdk:networkstate:unspecified并android-sdk:okvolley:unspecified显示在外部依赖项列表中.
我想library用捆绑的本地模块创建我的aar.它应该做一个本地清单合并和远jar ...并合并所有模块的依赖性.只显示外部模块.
我确实尝试从build/output/aar相应模块的文件夹中引用本地aar文件,但这似乎也行不通.它仍然似乎用他们的名字引用本地模块而不是合并jar的清单......
有人做过这样的事吗?在Android之外,这将被称为fatjar,并且有像musketyr/gradle-fatjar-plugin这样的插件,可以用Gradle生成一个胖子.
我在我的本地模块上试过这个
if (project.ext.libraryBuild …Run Code Online (Sandbox Code Playgroud) 我正在开发一个Android SDK库.在这个库中,我已经声明并使用了一些活动.现在我已经尝试将库包含在应用程序中,但我注意到我必须在应用程序中声明所有库活动.这是一件非常糟糕的事情,因为在图书馆中,我已经包含了很多活动,开发人员必须在他自己的应用程序中复制所有活动.这有解决方案吗?
我想开发一个由GCMIntentService组成的库项目,它执行GCM注册过程并接收通过GCM发送的消息.
我已经使用AIDL将我的库项目服务暴露给宿主应用程序,但我还需要在应用程序项目中声明服务.....我该如何避免这种情况?
此外,我还需要在应用程序清单中声明GCM所需的所有权限.
是否有任何方法可以从宿主应用程序中引用库项目的所有权限和服务,而无需在清单中再次声明它们?
我已经搜索过这个并发现:
1.是否可以在Android框架(库)中封装权限
这清楚地表明我想要实现的目标是不可能的.
2.有用的库项目清单文件是否合并?
@Hayes Haugen的回答说"在ADT工具的第20版中支持AndroidManifest.xml合并"
我正在使用ADT版本20.0.3
无论如何我可以实现提供GCM集成的库项目吗?
android aidl android-library google-cloud-messaging android-permissions
我的工作区布局是:
.
??? ApplicationLibrary
? ??? AndroidManifest.xml
? ??? ...
? ??? jni
? ??? libs
? ??? ...
? ??? src
??? Application
??? AndroidManifest.xml
??? ant.properties
??? ...
Run Code Online (Sandbox Code Playgroud)
如何在Eclipse中调试本机库?有人暗示过这个吗?
我使用eclipse进行谷歌Android开发.
我创建了一个库项目([x] Is Library在Android设置中),其中包含一个外部jar文件(Referenced Libraries).此库项目在另一个项目(将使用库项目的实际项目)中引用.这是通过在Android设置下添加项目来完成的.
源编译,但如果我想在设备上执行它,我得到一个类的NoClassDefFoundError,该类位于库项目中包含的jar文件中.
编辑:将jar文件添加到导出的条目中([x] my.jar在Order and Export库项目的-Tab上)
是否有一种干净的方式让这个工作?