标签: mobile-application

原因:buildOutput.apkData不能为null

当我尝试在手机的模拟器o中运行“ app”时,使用Kotlin的android应用程序抛出此异常。当我构建项目时,它运行良好,没有错误。

我在用:

  • SDK 28(Android 9.0(Pie))
  • 摇篮5.1.1
  • Gradle插件3.5.0-alpha03
  • Kotlin 1.3.10
  • Java 1.8.0_151
  • OSX 10.13.2
    org.gradle.internal.exceptions.LocationAwareException: buildOutput.apkData must not be null
        at org.gradle.initialization.exception.DefaultExceptionAnalyser.transform(DefaultExceptionAnalyser.java:99)
        at org.gradle.initialization.exception.DefaultExceptionAnalyser.collectFailures(DefaultExceptionAnalyser.java:65)
        at org.gradle.initialization.exception.MultipleBuildFailuresExceptionAnalyser.transform(MultipleBuildFailuresExceptionAnalyser.java:39)
        at org.gradle.initialization.exception.StackTraceSanitizingExceptionAnalyser.transform(StackTraceSanitizingExceptionAnalyser.java:29)
        at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:194)
        at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:141)
        ...
    Caused by: java.lang.IllegalStateException: buildOutput.apkData must not be null
        at com.android.build.gradle.internal.ide.EarlySyncBuildOutput$Companion$load$2.invoke(EarlySyncBuildOutput.kt:103)
        at com.android.build.gradle.internal.ide.EarlySyncBuildOutput$Companion$load$2.invoke(EarlySyncBuildOutput.kt:67)
        at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:174)
        at kotlin.sequences.SequencesKt___SequencesKt.toCollection(_Sequences.kt:691)
        at kotlin.sequences.SequencesKt___SequencesKt.toMutableList(_Sequences.kt:721)
        at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:712)
        ...
Run Code Online (Sandbox Code Playgroud)

mobile android mobile-application apk android-studio

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

为移动应用程序创建API - 身份验证和授权

概观

我正在寻找为我的应用程序创建(REST)API.初始/主要目的是供移动应用程序(iPhone,Android,Symbian等)使用.我一直在研究基于Web的API的身份验证和授权的不同机制(通过研究其他实现).我已经掌握了大部分基本概念,但我仍在寻找一些领域的指导.我想做的最后一件事就是重新发明轮子,但我找不到任何符合我标准的标准解决方案(不过我的标准是我的误导,所以也可以随意批评).此外,我希望API对于使用它的所有平台/应用程序都是相同的.

OAuth的

我会继续向oAuth抛弃我的反对意见,因为我知道这可能是第一个提供的解决方案.对于移动应用程序(或更具体地说是非Web应用程序),离开应用程序(转到Web浏览器)进行身份验证似乎是错误的.此外,没有办法(我知道)浏览器将回调返回给应用程序(特别是跨平台).我知道有几个应用程序可以做到这一点,但它只是感觉不对,并且在应用程序用户体验中取得了突破.

要求

  1. 用户在应用程序中输入用户名/密码
  2. 每个API调用都由调用应用程序标识.
  3. 开销保持在最低限度,auth方面对开发人员来说非常直观.
  4. 该机制对于最终用户(他们的登录凭证未公开)以及开发人员(他们的应用程序凭证未公开)都是安全的.
  5. 如果可能,不要求https(绝不是硬性要求).

我目前对实施的看法

外部开发人员将请求API帐户.他们将得到一个apikey和apisecret.每个请求至少需要三个参数.

  • apikey - 在注册时交给开发人员
  • timestamp - 兼作给定apikey的每条消息的唯一标识符
  • hash - 时间戳的哈希值+ apisecret

需要apikey来识别发出请求的应用程序.时间戳的作用与oauth_nonce类似,可以避免/减轻重放攻击.哈希确保请求实际是从给定apikey的所有者发出的.

对于经过身份验证的请求(代表用户完成的请求),我仍然未决定使用access_token路由或用户名和密码哈希组合.无论哪种方式,在某些时候都需要用户名/密码组合.因此,当它发生时,将使用几条信息(apikey,apisecret,timestamp)+密码的散列. 我喜欢这方面的反馈. 仅供参考,他们必须首先对密码进行哈希处理,因为我没有在没有散列的情况下将密码存储在我的系统中.

结论

仅供参考,这不是要求如何构建/构建API,一般只是如何仅在应用程序内处理身份验证和授权.

随机思考/奖金问题

对于只需要apikey作为请求的一部分的API,如何防止apikey所有者以外的其他人能够看到apikey(因为明确发送)并过多地请求推送它们超过使用限制?也许我只是在想这个,但是不应该有一些东西需要验证是否已向apikey所有者验证了请求?在我的情况下,这是apisecret的目的,它不会被显示/传输而不被散列.

说到哈希,md5和hmac-sha1怎么样?当所有值都用足够长的数据(即apisecret)进行散列时,这真的很重要吗?

我之前一直在考虑为用户密码哈希添加每用户/行盐.如果我这样做,应用程序如何能够在不知道使用的盐的情况下创建匹配的哈希?

authentication api rest oauth mobile-application

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

如何生成一个可以在没有带反应原生的服务器的情况下运行的apk?

我已经构建了我的应用程序,我可以在我的本地模拟器上运行它(也可以通过更改调试服务器在同一网络中的我的Android设备上运行).

但是,我想构建一个apk,我可以发送给没有访问开发服务器的人,我希望他们能够测试应用程序.

我看到在文档的iOS部分有一个使用脱机捆绑的部分.但我无法弄清楚如何为Android做同样的事情.这可能吗?如果是这样,怎么样?

更新:关于这个问题的答案(反应原生android无法加载JS包),据说离线包可以从开发服务器下载.但是当我从开发服务器获取捆绑包时,无法加载图像文件.

javascript android mobile-application react-native

173
推荐指数
17
解决办法
18万
查看次数

在Android应用上嵌入广告?

我想制作一个免费版的Android应用程序,但想在其上嵌入广告.我不确定我应该从哪里开始?是否有专门从事移动广告的知名移动广告公司?

android mobile-phones ads mobile-application mopub

146
推荐指数
3
解决办法
10万
查看次数

将HTML5转换为独立的Android应用程序

我有一个动态HTML5文档,不包含任何外部资源(没有图像,css和脚本在文档内编码).这个HTML5应用程序与Internet浏览器一起正常工作.我想知道,如果可以这个HTML5应用程序转换为独立的Android应用程序,那么它可以直接在没有浏览器的情况下执行.请指教.

html mobile html5 android mobile-application

67
推荐指数
2
解决办法
13万
查看次数

React Native支持哪个版本(iOS和Android)?

我找不到这些信息.Android React Native是否真的在sdkMin18上运行,因此大多数Android版本都支持它?

android mobile-application ios mobile-development react-native

38
推荐指数
3
解决办法
4万
查看次数

如何构建一个APK和应用程序动态加载的独立库

简短的总结是:我如何构建一个APK和单独的库(我指的是某些形式的类集合(理想情况下也是资源),例如JAR,AAR或DEX文件),但不包括那些库中的库. APK; 相反,应用程序在运行时加载它们?

详情

所以我的主要问题是如何构建这样的应用程序(例如Gradle配置).如何指定哪些类进入哪些JAR或DEX文件?我是否为每个想要最终使用的DEX文件创建了一个Android Studio模块?

一个密切相关的问题是Java代码应该如何加载外部库并在运行时访问它们的类.对于后者,我希望通过类加载器从dex文件访问app类时显示的方法可行.

我试着在说明https://developer.android.com/studio/projects/android-library.html,但是这是建立一个APK 包括依赖库.

我也尝试过Multidex(https://developer.android.com/studio/build/multidex.html),但这似乎并没有让开发人员控制哪些类进入哪个DEX文件,此外,将它们打包成一个APK.AFAICT无法在运行时控制这些DEX文件的加载.

背景

这里有" XY问题 " 的可能性,所以我最好解释一下背景.

我正在为客户构建一个应用程序.它不会通过应用程序商店分发,因此它无法访问正常的更新机制.相反,客户希望应用程序能够通过下载自身的新组件来更新自己,以替换旧组件,而无需手动加载新的APK.这里的主要动机是非技术用户的更新必须容易.如果应用程序可以控制更新过程,它可以使其流畅并引导用户.

此外,该应用程序将用于互联网访问稀缺和昂贵的领域,因此客户希望能够以较小的块(例如2MB)发布应用程序更新,而不是强迫用户重新下载整个应用程序以接收小更新.

如果重要的话,我应该提到的要求的一个方面是,在运行时加载的库应该存在于microSD卡上.这也有助于在没有互联网访问的情况下分发更新.

该应用程序的当前状态是大约50%写入:即,已发布了几个早期版本,但现在需要修改(重组)应用程序以满足上述要求以及其他要求.

android dynamic-class-loaders mobile-application android-gradle-plugin

31
推荐指数
1
解决办法
2946
查看次数

未为类“BasicMessageChannel<dynamic>”定义方法“setMockMessageHandler”

运行Flutter项目后,出现此错误。我能做什么来解决它?

Error: The method 'setMockMessageHandler' 
isn't defined for the class 'BasicMessageChannel<dynamic>'.

FAILURE: Build failed with an exception.
Run Code Online (Sandbox Code Playgroud)

mobile-application dart flutter flutter2.0 flutter-exception

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

NavController在Ionic 4中不起作用

我正在我的构造函数中注入NavController,因为我想推送一个页面.但是,下面的代码在Ionic 4中不起作用.在Ionic 3中完全没问题.

构造函数

constructor(public menuCtrl: MenuController, public navCtrl: NavController) {
    this.menuCtrl.enable(true);
   }
Run Code Online (Sandbox Code Playgroud)

方法

goToSecondPage()
  {
    this.navCtrl.push(list);
  }
Run Code Online (Sandbox Code Playgroud)

错误

mobile-application hybrid-mobile-app ionic-framework angular ionic4

25
推荐指数
3
解决办法
4万
查看次数

向上拖动ScrollView,然后在React Native中继续滚动

我想要什么(GIF)

这是关于我想要实现的(降低质量的)GIF。

在此处输入图片说明

我想要什么(文字)

我有一个scrollview位于屏幕一半的。

我想要的是将其scrollview向上拖动,然后在到达某个位置时将其发送drag touch eventscrollview自身,以便它可以继续滚动。

我的尝试

  • 将滚动视图全屏显示在前景中,并在其顶部添加半屏填充contentContainerStyle。效果很好,但是我无法单击它后面的视图。有没有一种方法可以单击滚动视图的空白区域
  • 我还尝试检测滚动位置,以便相应地向上移动视图

    <ScrollView onScroll={event => moveScrollViewUpIfNeeded(event)}>
        ...
    </ScrollView>
    
    Run Code Online (Sandbox Code Playgroud)

    但是当我在iOS模拟器上进行测试时无法正常工作。事件甚至没有触发。React Native Docs指出onScroll需要scrollEventThrottle工作。但是,scrollEventThrottle在iOS上可用。就我而言,我也想在Android上使用它。
    而且,如果我成功实现了这一点,那么我将面临另一个UI问题:向上拖动ScrollView时,如何在视图尚未到达所需位置时阻止它滚动?

因此,能否请您给我一些实现此目标的提示:)?

谢谢,

mobile-application reactjs react-native react-native-scrollview

22
推荐指数
1
解决办法
1034
查看次数