我有一个项目,里面有几个模块,其中一个是名为(很差)的Android库sdk.当我构建项目时,它输出一个名为的AAR sdk.aar.
我无法在Android或Gradle文档中找到允许我更改AAR输出名称的任何内容.我希望它有一个基本名称+版本号,就像Jar任务一样,但我无法弄清楚如何为AAR做同样的事情,因为它的所有配置似乎都隐藏在android.library插件中.
在此阶段重命名模块不是一个选项,仍然不会将版本号添加到最终的AAR.
如何更改com.android.libraryGradle中生成的AAR的名称?
Gradle解决方案
defaultConfig {
minSdkVersion 9
targetSdkVersion 19
versionCode 4
versionName '1.3'
testFunctionalTest true
project.archivesBaseName = "Project name"
project.version = android.defaultConfig.versionName
}
Run Code Online (Sandbox Code Playgroud) 有没有经历过这个错误的人?
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/org.swig.simple-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]] couldn't find "liborg.swig.simple.example.so"
Run Code Online (Sandbox Code Playgroud)
通过这种方式加载库时发生错误.
static {
System.loadLibrary("example");
}
Run Code Online (Sandbox Code Playgroud)
我确定'example'类存在于当前文件夹中.
有人可以给我一个关于如何使用maven-publish gradle插件发布带有aar和source jar的com.android.library项目/模块的提示吗?我可以使用旧的maven插件执行此操作 - 但我想使用新的maven-publish插件.
android gradle android-library android-gradle-plugin maven-publish
我想使用Proguard主要是出于混淆的原因.
我的问题是我有三个库,Twitter4J和两个路标库.当我尝试创建签名的APK时,这些库会导致错误.为了克服这个问题,我在proguard.config文件中添加了以下内容......
-dontwarn org.apache.commons.codec.binary.**
-dontwarn org.slf4j.**
-dontwarn com.sun.syndication.io.**
-dontwarn com.sun.syndication.feed.synd.*
Run Code Online (Sandbox Code Playgroud)
虽然这摆脱了控制台中的错误,当我将签名的APK加载到我的手机上时,它立即崩溃了.DDMS说这是由于Twitter4J中没有找到的课程.
摆脱"dontwarns"上述情况并没有帮助.也没有添加dontshrink dontoptimise.
我希望Proguard完全忽略这些库(因为它们无论如何都是开源的).这可能吗?
我们正在构建一个基于位置的消息传递应用程序,它使用Parse.com作为后端(Parse.com类似于Urban Airship/PubNub等),我们现在想切换到我们自己的后端以获得更好的控制.为此,我们构建了一个基于node.js的后端,其功能通过REST API公开
要使用此API,我们需要构建一个Android库(类似于Parse.com的Android SDK),它抽象所有HTTP请求/响应或REST API调用,并为各种操作提供直接函数,如getUsers(),sendMessage()等
在Android中实现REST API客户端的方法:
现在,考虑到我们想要构建一个android库,并且在用户与应用程序交互时可能会同时进行REST API调用,哪种方法最好继续进行?我也对其他建议/建议持开放态度.
更新:我们首先使用IntentService + ResultReceiver构建我们自己的库,它工作正常.但我们后来偶然发现了Android Async Http.用它.这很棒!
在最新版本的ADT(版本20预览版3)中,他们说可以使库的清单文件与使用它们的项目合并:
将库项目清单文件自动合并到包含项目的清单中.使用manifestmerger.enabled属性启用.
我如何以及在何处使用它?我无法在任何地方看到内容帮助我.
我有一个Android库项目,我想在另一个Android项目中使用.
该库在其AndroidManifest中声明了一个Activity.当我在第二个项目中尝试以下内容时:
Intent intent = new Intent(this, ReaderActivity.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
我得到以下异常:
java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.digitalpages.reader.demo/br.com.digitalpages.reader.demo.ReaderDemoActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {br.com.digitalpages.reader.demo/br.com.digitalpages.reader.ReaderActivity}; have you declared this activity in your AndroidManifest.xml?
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
...
Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {br.com.digitalpages.reader.demo/br.com.digitalpages.reader.ReaderActivity}; have you declared this activity in your AndroidManifest.xml?
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1404)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378)
...
Run Code Online (Sandbox Code Playgroud)
如何从另一个项目中打开活动?
编辑:根据用户的答案,我将以下行添加到我的第二个项目中
<uses-library android:name="br.com.digitalpages.reader" android:required="true" />
Run Code Online (Sandbox Code Playgroud)
但它仍然不起作用
我在这里已经阅读了类似的问题,但我仍然不清楚几件事情.使用库项目意味着我的整个项目将有两个清单 - 一个用于库,另一个用于"主"应用程序项目 - 我不清楚是什么或哪些有冗余.
我正在开发一个带有"精简"和"付费"版本的应用程序小部件,因此几乎所有代码都在库项目中.作为一个小部件,该库至少会有一个接收器,一个服务,一个配置活动,以及其他一些活动.那么应该在哪里声明这些组件的完整声明 - 包括意图,过滤器等?它们是在库的清单中,还是在应用程序包本身的清单中,引用库中的类(例如android:name ="com.foo.mylibrary.MyService")?
我看过的一些例子似乎在两个清单中都声明了它们,但我怀疑将它们放在一个或另一个中是一个无操作.
android android-manifest android-service android-library android-activity
我有一个android库,输出一个aar库.该库将构建到Mobile,TV和Wear应用程序的不同projectFlavors中.我认为这些平台中的每一个都应该是通过清单和产品风格设置应用程序名称,图标和权限等变量的平台.
有没有办法在不需要AndroidManifest.xml的情况下构建AAR,因此可以绘制drawable(用于图标)?
有关我正在做的事情的更多信息可以在我关于这个主题的最后一个问题中找到: Android Studio Java Library Module与Android Library Module
我有一个Android库项目,其中包含在styles.xml文件中定义的几个样式/主题.
通常,在其他xml布局或清单文件中引用此样式时,您只需编写 android:theme="@style/TheNameOfTheStyle"
使用库项目时,依赖项目如何正确引用该样式?只是把它留下来android:theme="@style/TheNameOfTheStyle"给我一个错误,说没有找到匹配该名称的资源.
我想同样的问题也适用于@string,@ color等其他参考文献.
谢谢
编辑:好的所以看起来你似乎正常引用它,但是eclipse中的控制台给了我这个错误:
错误:找不到与给定名称匹配的资源(在'theme'处,值为'@ style/ThemeName').
(facepalm)编辑
我只需要在Eclipse中"清理项目".现在它正在运作.
android ×10
android-library ×10
gradle ×2
adt ×1
asynchronous ×1
c++ ×1
proguard ×1
rest ×1
swig ×1
xml ×1