小编iku*_*rek的帖子

更新到 Kotlin 1.4 后,Android Gradle 构建失败 dexBuilderDebug 任务

我尝试将我的 Android 项目更新为 Kotlin 1.4.0,因为它现在正式稳定,更新后我遇到了问题。我不会在这里发布整个堆栈,因为它很长,但它的顶部看起来像这样:

...
> Task :app:transformClassesWithFirebasePerformancePluginForDebug
java.lang.ClassNotFoundException: javax.mail.internet.MimeBodyPart
> Task :app:mergeDebugJavaResource
> Task :app:dexBuilderDebug FAILED
org.gradle.workers.WorkerExecutionException: There was a failure while executing work items
...
Run Code Online (Sandbox Code Playgroud)

在堆栈中寻找原因,我发现了这个:

...
Caused by: org.gradle.tooling.BuildException: Failed to process: 
/bitrise/src/app/build/intermediates/transforms/FirebasePerformancePlugin/debug/0, 
/bitrise/src/app/build/intermediates/transforms/FirebasePerformancePlugin/debug/1,
/bitrise/src/app/build/intermediates/transforms/FirebasePerformancePlugin/debug/2
...
Run Code Online (Sandbox Code Playgroud)

这使我得出结论,Firebase 性能库无法正确构建。我正在使用 Firebase Performance 版本19.0.8和 gradle classpath plugin version 1.3.1。我有一段时间没有更改它,恢复到早期版本并不能解决问题。在堆栈上注册的最后一个错误是这样的:

Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.
    at com.android.builder.dexing.D8DexArchiveBuilder.getExceptionToRethrow(D8DexArchiveBuilder.java:151)
    at com.android.builder.dexing.D8DexArchiveBuilder.convert(D8DexArchiveBuilder.java:118)
    at com.android.build.gradle.internal.dexing.DexWorkActionKt.process(DexWorkAction.kt:194)
    ... 33 more
Caused by: java.lang.IllegalStateException: Unexpected non-class file: META-INF/versions/9/kotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInsResourceLoader.class
Run Code Online (Sandbox Code Playgroud)

我已经确定,删除 Firebase Performance 库并恢复到 …

android gradle kotlin firebase firebase-performance

18
推荐指数
1
解决办法
2079
查看次数

Dokka - 跳过为默认的android包生成javadoc

我正在尝试使用Dokka插件为Android Kotlin应用程序生成Javadoc.我将插件添加到我的gradle中:

classpath "org.jetbrains.dokka:dokka-gradle-plugin:0.9.15"
Run Code Online (Sandbox Code Playgroud)

然后我按照项目说明进行了基本配置:

dokka {
    outputFormat = 'javadoc'
    outputDirectory = "$rootDir/docs"
    skipEmptyPackages = true
    noStdlibLink = true
}
Run Code Online (Sandbox Code Playgroud)

我使用基本的gradle命令生成文档:

[user@linux AppDir]$ bash gradlew dokka
Run Code Online (Sandbox Code Playgroud)

输出很好,但它包括我添加到项目中的android或插件的多个目录,例如:

android.R
android.support
com.google
com.crashlytics
.
.
.
etc.
Run Code Online (Sandbox Code Playgroud)

我如何跳过这些包裹?有没有办法只为我的/ app/scr/java文件夹和我创建的文件生成dock?任何帮助表示赞赏.

android javadoc gradle kotlin kotlin-dokka

8
推荐指数
1
解决办法
1379
查看次数

Flutter Navigator 2.0 - 从 URL 启动应用程序时,路由器未收到深层链接?

我正在使用带有嵌套路由器的 Flutter Navigator 2.0 - 有一个通过调用创建的主路由器,MaterialApp.router()以及使用适当的 RouterDelegates 创建为小部件的子路由器Router()(子路由器用作底部导航的页面)。

在当前的用例中,我想使用深层链接打开嵌套路由器内的页面之一,因此我按照说明进行配置:

  1. 用于接收自定义架构和主机 URL 的 Android 清单
  2. RouteInformationParser将其解析为我自己的模型
  3. PlatformRouteInformationProvider通知所有嵌套路由器有关路由更改的信息

当应用程序位于前台时(在启动屏幕上),一切正常 - 我收到一个 PushRoute 事件,并且根和嵌套Router小部件正确处理深层链接。但是,当应用程序未启动时,我没有收到设置为我的深层链接的初始路由,并且我得到默认值,空RouteInformation即空。为什么会发生这种情况?这是我的代码示例:

Android Manifest 中的FlutterMainActivity配置:

        <activity
            android:name=".MainActivity"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:exported="true"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:windowSoftInputMode="adjustResize">

            <meta-data
                android:name="io.flutter.embedding.android.NormalTheme"
                android:resource="@style/NormalTheme" />

            <meta-data
                android:name="io.flutter.embedding.android.SplashScreenDrawable"
                android:resource="@drawable/launch_background" />

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <!-- For deeplinking -->
            <meta-data
                android:name="flutter_deeplinking_enabled"
                android:value="true" />

            <!-- Accepts links in format myapp://*.myapp.com/ -->
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" …
Run Code Online (Sandbox Code Playgroud)

android deep-linking ios flutter flutter-navigation

7
推荐指数
1
解决办法
3084
查看次数

ExpandableListView 未按正确顺序出现

我正在编写一个 Android 应用程序,我决定使用可扩展的列表视图。我有我需要的一切,列表工作正常,但是当我填充它时,组的顺序似乎与它们应该的顺序不同,这是一个例子: 未扩展

展开

如您所见,子值很好,只有父值以随机顺序出现。这是我拥有的完整代码:

我的片段代码:

public class BuildingsFragment extends Fragment {


public BuildingsFragment() {
    // Required empty public constructor
}


public static BuildingsFragment newInstance(Context context) {
    BuildingsFragment fragment = new BuildingsFragment();

    return fragment;
}


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_buildings, container, false);


    final ExpandableListView expandableListView = (ExpandableListView) view.findViewById(R.id.expandableListViewBuildings);
    HashMap<String, List<String>> expandableListDetail = ExpandableListDataPump.getData();
    List<String> expandableListTitle = new …
Run Code Online (Sandbox Code Playgroud)

java android hashmap expandablelistview

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